我收到上述錯誤,我不知道爲什麼。當錯誤被標記的行是:沒有已知的選擇器實例方法 - 委託問題?
- (IBAction)cancelButton:(UIBarButtonItem *)sender
{
[self.delegate addActivityViewControllerDidCancel:self.thisActivity];
}
我很困惑,因爲似乎有這種方法沒有問題,前一個:
- (IBAction)saveButton:(UIBarButtonItem *)sender
...
[self.delegate addViewControllerDidSave];
}
...
}
我的協議被宣佈這樣的關聯頭文件:
@protocol AddActivityViewControllerDelegate <NSObject>
-(void) addViewControllerDidSave;
-(void) addViewControllerDidCancel:(WMDGActivity *) activityToDelete;
@end
和方法在委託對象中實現這樣的:
-(void) addActivityViewControllerDidSave
{
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
[localContext MR_saveToPersistentStoreAndWait];
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
[self refreshData];
}
-(void) addActivityViewControllerDidCancel:(WMDGActivity *) activityToDelete
{
[activityToDelete MR_deleteEntity];
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
[self refreshData];
}
可有人請指出我的錯誤?
編輯:
確實是有一個命名問題(我是從一個測試應用程序中粘貼)。不過,我已經改正了,我相信,像這樣:
@protocol AddActivityViewControllerDelegate <NSObject>
-(void) AddActivityViewControllerDidSave;
-(void) AddActivityViewControllerDidCancel:(WMDGActivity *) activityToDelete;
@end
而且
- (IBAction)saveButton:(UIBarButtonItem *)sender
{
...
[self.delegate AddActivityViewControllerDidSave];
...
}
而且
- (IBAction)cancelButton:(UIBarButtonItem *)sender
{
[self.delegate addActivityViewControllerDidCancel:self.thisActivity];
}
而且
-(void) addActivityViewControllerDidSave
{
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
[localContext MR_saveToPersistentStoreAndWait];
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
[self refreshData];
}
-(void) addActivityViewControllerDidCancel:(WMDGActivity *) activityToDelete
{
[activityToDelete MR_deleteEntity];
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
[self refreshData];
}
仍然得到錯誤。
構建失敗,即使有斷點由@Leo建議
@bneely把你的答案回來。這是正確的。獅子座是錯誤的。 – rmaddy
這看起來像'self.delegate'類型'id'的問題,而不符合相關協議。 – bneely
請參閱上面的修改。 – rattletrap99