小编alt*_*yus的帖子

为什么Apple在类构造函数中对instancetype的使用不一致?

看一下NSArray.h中的NSArray创建方法块.

返回id的方法是否有正当理由不返回instancetype?

Apple甚至努力添加内联注释,让我们知道id在这种情况下会返回一个NSArray.

@interface NSArray (NSArrayCreation)

+ (instancetype)array;
+ (instancetype)arrayWithObject:(id)anObject;
+ (instancetype)arrayWithObjects:(const id [])objects count:(NSUInteger)cnt;
+ (instancetype)arrayWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;
+ (instancetype)arrayWithArray:(NSArray *)array;

- (instancetype)init;   /* designated initializer */
- (instancetype)initWithObjects:(const id [])objects count:(NSUInteger)cnt; /* designated   initializer */

- (instancetype)initWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;
- (instancetype)initWithArray:(NSArray *)array;
- (instancetype)initWithArray:(NSArray *)array copyItems:(BOOL)flag;

+ (id /* NSArray * */)arrayWithContentsOfFile:(NSString *)path;
+ (id /* NSArray * */)arrayWithContentsOfURL:(NSURL *)url;
- (id /* NSArray * */)initWithContentsOfFile:(NSString *)path;
- (id /* NSArray * */)initWithContentsOfURL:(NSURL *)url;

@end
Run Code Online (Sandbox Code Playgroud)

我能提出这些特殊方法的唯一方法就是Apple的这个指导 …

iphone objective-c dynamic-typing ios

13
推荐指数
2
解决办法
1273
查看次数

标签 统计

dynamic-typing ×1

ios ×1

iphone ×1

objective-c ×1