是否可以在协议方法中使用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; 

}

+0

如果你确定参数的类型是相同的,那么发送任何对象,所以NSDictionary作为协议方法中的参数是完全正确的。如果你不是,只需使用id作为参数类型。 – Suryakant

使用NSDictionary或任何想要发送到方法的对象都是完全可以的,这是很常见的事情。

如果你不知道你要发送什么样的对象,我只会在使用id的时候考虑。