我收到上述错误,我不知道为什么。当错误被标记的行是:没有已知的选择器实例方法 - 委托问题?
- (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