私はCoreDataを初めて使用し、データベースから情報をクエリするためのジェネリック関数を作成しようとしています。私はいくつかの問題に直面しています。
NSError*errorというプライベート変数を設定しました。私のコードは次のようになります:
@interface DatabaseHandler ()
{
NSError * error;
}
@end
-(void)queryCoreDataModel:(NSString*)tableName sortBy:(NSArray *)sortArray{
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:tableName];
request.fetchLimit = 20;
request.sortDescriptors = sortArray;
[context executeFetchRequest:request error:&error];
}
それは私にこのエラーを与えます:Passing address of non-local object to __autoreleasing parameter for write-back.
しかし、私がこれを行うとき:
-(void)queryCoreDataModel:(NSString*)tableName sortBy:(NSArray *)sortArray{
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:tableName];
request.fetchLimit = 20;
request.sortDescriptors = sortArray;
NSError *error;
[context executeFetchRequest:request error:&error];
}
エラーは発生しません。なんでそうなの?