+ (instancetype)new OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
+ (instancetype)allocWithZone:(struct _NSZone *)zone OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
+ (instancetype)alloc OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
- (void)dealloc OBJC_SWIFT_UNAVAILABLE("use 'deinit' to define a de-initializer");
- (void)finalize OBJC_DEPRECATED("Objective-C garbage collection is no longer supported");
- (id)copy;
- (id)mutableCopy;
上述代码块中,返回类型分为 instancetype和id两种,各在何种情况下使用呢?
instancetype 关联返回类型
id非关联返回类型
1、关联返回类型
(1)类方法中,以alloc或new开头
(2)实例方法中,以autorelease,init或self开头
会返回一个方法所在类的类型对象,这些方法就被称为是关联返回类型的方法。换句话说,这些方法的返回结果以方法所在的类为类型。如上述代码
2、非关联返回类型
@interface NSArray
+ (id)constructAnArray;
@end
根据cocoa命名规范,得到的返回类型和方法声明的返回类型一样,是id.









网友评论