我在Github上发现了这个,但我不知道这段代码在做什么。有人可以解释一下吗?
- (id)initWithTitle:(NSString *)title
message:(NSString *)message
completionBlock:(void (^)(NSUInteger buttonIndex))block
cancelButtonTitle:(NSString *)cancelButtonTitle
otherButtonTitles:(NSString *)otherButtonTitles, ... {
特别是这个(void (^)
是什么,最后如何使用...
?
答案 0 :(得分:1)
void(^)(NSUInteger buttonIndex)是一个块,它们在整个Cocoa框架中使用,我强烈建议在http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/bxGettingStarted.html
查看Apple的入门指南方法名称末尾的三个点表示该方法采用前一种类型的任意数量的参数,在本例中为NSString。这与C中的printf相同。请参阅http://en.wikipedia.org/wiki/Variadic_function#Variadic_functions_in_C.2C_Objective-C.2C_C.2B.2B.2C_and_D
答案 1 :(得分:1)
(void (^)(NSUInteger buttonIndex))block
,如标签和参数名称所示,是Block,它是一块可运行的代码,也是一流的对象。
省略号...
表示该方法采用可变数量的最终参数。此功能通常由其C库名称"varargs"所知。更正式的术语是"variadic"。