是否可以在协议方法中使用NSDictionary作为参数?
问题描述:
我想通过NSDictionary包含值使用协议方法到视图控制器,并想知道是否可以做到这一点,或者我需要使用(ID),然后在我的视图控制器,我定义的协议方法typecast( ID)到NSDictionary? 任何人,感谢是否可以在协议方法中使用NSDictionary作为参数?
@protocol TestDelegate
@optional
-(void) didFinish:(NSDictionary*) finishList;
或
-(void) didFinish:(id) finishList;
@end
//Someviewcontroller.m
-(void) didFinish:(id) finishList
{
NSDictionary* testDc = (NSDictionary*)finishList;
}
答
使用NSDictionary或任何想要发送到方法的对象都是完全可以的,这是很常见的事情。
如果你不知道你要发送什么样的对象,我只会在使用id的时候考虑。
如果你确定参数的类型是相同的,那么发送任何对象,所以NSDictionary作为协议方法中的参数是完全正确的。如果你不是,只需使用id作为参数类型。 – Suryakant