【发布时间】:2014-04-16 18:30:23
【问题描述】:
我用 typedef 声明了很多块类型;它们有什么命名约定吗?
【问题讨论】:
-
您找到问题的解决方案/答案了吗?
标签: objective-c naming-conventions objective-c-blocks typedef
我用 typedef 声明了很多块类型;它们有什么命名约定吗?
【问题讨论】:
标签: objective-c naming-conventions objective-c-blocks typedef
请参阅 Apple 文档中的此处,Enumerated constants 和 Naming Properties and Data Types
我在 Apple 的文档中找不到任何内容,但我确实从 AppCelerator 找到了一个。
【讨论】:
来自Apple doc,它是带有 Objective-C 命名约定样式(显式/详细)的 CamelCase
【讨论】:
经过大量研究,Apple 似乎没有对它们的块进行类型定义,而是更喜欢明确命名参数的使用位置。他们的 Cocoa 风格指南也没有提到块被 typedef'd。
例如从NSURLSessionTaskDelegate看NSURLSession.h中的这个方法:
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
willPerformHTTPRedirection:(NSHTTPURLResponse *)response
newRequest:(NSURLRequest *)request
completionHandler:(void (^)(NSURLRequest * _Nullable))completionHandler;
请注意,completionHandler 不接收 typedef。
在我看来,只有当定义可以立即重用并且足够通用以在多个地方使用时,才对块进行 typedef 才有意义。
【讨论】: