次のコード (http://stackoverflow.com/questions/4471289/how-to-filter-nsfetchedresultscontroller-coredata-with-uisearchdisplaycontroll) で作成されたモーダル ビュー コントローラーでテーブル ビューを表示しているので、コア データ、NSFetchedResults を使用できます。そしてUISearchbar。最終的に、テーブルビュー/検索/詳細ビューの最後ですべてがうまく機能するようになりましたが、理解できないショーストッパーを発見しました。
次を使用してテーブルビューを閉じると:
- (IBAction)doneButtonPressed:(id)sender {[self dismissModalViewControllerAnimated:YES];}
モーダル ビューが閉じ、メイン ビューが読み込まれ、アプリがクラッシュします。メイン ビュー コントローラーからこの nslog を呼び出すことができるようになりました。
-(void) viewDidAppear:(BOOL)animated { NSLog(@"do I crash");}
ここで不正なアクセス エラーが発生します。
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));}}
問題はアークに関連している可能性があると思います。使用したコード テンプレートは arc 用ではなかったので、次の変更を加えました。
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSFetchedResultsController *fetchedResultsController;
に
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, strong, readonly) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, retain) NSFetchedResultsController *searchFetchedResultsController;
@property (nonatomic, retain) UISearchDisplayController *mySearchDisplayController;
に
@property (nonatomic, strong) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, strong) NSFetchedResultsController *searchFetchedResultsController;
@property (nonatomic, strong) UISearchDisplayController *mySearchDisplayController;
さらに、didreceivememorywarning から以下を削除しました。
[fetchedResultsController_ release];
[searchFetchedResultsController_ release];
そして以下を変更しました - (NSFetchedResultsController *)fetchedResultsController
return [[fetchedResultsController_ retain] autorelease];
に
return fetchedResultsController;
そして - (NSFetchedResultsController *)searchFetchedResultsController
return [[searchFetchedResultsController_ retain] autorelease];
に
return searchFetchedResultsController;
私は完全に困惑しています。どんな援助でも大歓迎です!