我完全糊塗了,並在需要緊急幫助在一個給定類聲明多於一名代表
我宣佈兩個協議
@protocol DeletedDelegate <NSObject>
- (void) deletedObj: (id) p_objDeleted;
@end
@protocol BrowseDelegate <NSObject>
- (void) nextObj: (id) p_currentObj;
- (void) previousObj: (id) p_currentObj;
@end
在我viewController.h文件我已經聲明代表如下:
@property (nonatomic, weak) id<DeletedDelegate> delegate;
@property (nonatomic, weak) id<BrowseDelegate> browseDelegate;
在viewController.mi
有兩個動作是有基本相同的代碼
- (IBAction) previous_Clicked: (id) sender
{
//If anyone is listening
if ([self.browseDelegate respondsToSelector:@selector(previousObj:)]==YES)
{
//send them the new status
[self.browseDelegate previousObj:(self.currentObj)];
}
}
- (IBAction) trashBin_Clicked: (id) sender
{
//If anyone is listening
if ([self.delegate respondsToSelector:@selector(deletedObj:)]==YES)
{
//send them the new status
[self.delegate deleteObj:(self.currentObj)];
}
}
,並在旁邊接口的UITableViewController我已經宣佈了兩個協議 <DeletedDelegate, BrowseDelegate>
以及實施的deleteObj
和功能previousObj
這裏是我的問題:在previous_Clicked
這[self.browseDelegate respondsToSelector:@selector(previousObj:)]
總是返回NO 。
現在,如果我評論刪除委託代碼並將browseDelegate的名稱更改爲委託,它將工作得很好。
我的問題是我怎麼能在一個類
此代碼看起來不錯。你確定'browseDelegate'不是'nil'嗎?你把它設置爲一個對象嗎?如果它是一個對象,那麼該對象是否有'-previousObj:'方法? – 2013-04-26 03:53:14
browseDelegate不是零,我確實設置了對象。正如我上面寫的,如果我只將其名稱從browseDelegate更改爲委託,並且評論其他委託全部正常工作 – 2013-04-27 22:26:04