例如,我有这个:
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler
我不明白(void(^)())completionHandler
答案 0 :(得分:1)
所有对象类型均为@
。因此我希望如此,因为块是Objective-C中的对象。
但是,您可以使用method_getTypeEncoding()
来询问运行时本身。
答案 1 :(得分:1)
如有疑问,请使用@encode
指令:
typedef void(^CompletionHandler)(void);
char *encoded = @encode(CompletionHandler);
NSLog(@"Encoded: %s", encoded);
打印@?
。
引用您的文档链接:
@一个对象(无论是静态类型还是键入的id)
?未知类型(除此之外,此代码用于函数指针)