在Xcode 5中,我使用下面的代碼(位於@interface區域)從CoreData模型中獲取數據。它告訴我,我應該在這裏插入一個分號,NSManagedObjectContext給出一個錯誤,詢問「;」我不知道爲什麼
- (NSManagedObjectContext *)managedObjectContext;
任何幫助表示讚賞!
下面是我的完整代碼塊。
//Get Data
- (NSManagedObjectContext *)managedObjectContext{
NSManagedObjectContext *context = nil;
id delegate = [[UIApplication sharedApplication] delegate];
if ([delegate performSelector:@selector(managedObjectContext)]) {
context = [delegate managedObjectContext];
}
return context;
}
'if([delegate performSelector:@selector(managedObjectContext)]'''是什麼意思?如果它響應選擇器,它將返回moc,如果它不會崩潰。 – Abizern
@Abizern:不,它會返回零。這並不意味着崩潰。 obj-c中的很多API在不存在的情況下返回nil。這很常見。 – cjwirth
@cjwirth真的嗎?我想你會發現如果對象不響應該消息,則會引發異常。 OP應該做的是調用'respondsToSelector:',這是在將消息發送給可能由於這個確切原因而不響應消息的對象之前經常完成的。 – Abizern