美文网首页
instancetype

instancetype

作者: advanceye | 来源:发表于2020-07-11 17:24 被阅读0次
  1. instancetype is a contextual keyword that can be used as a result type to signal that a method returns a related result type.
@interface Person
+ (instancetype)personWithName:(NSString *)name;
@end

使用id类型,当指针类型不匹配时,编译器不报错:

@interface Foo : NSObject
+ (id)aConvenienceInit;
@end

/// 编译器不报错
NSArray* subviews = [Foo aConvenienceInit].subviews; 

使用instance类型,当指针类型不匹配时,编译器报错:

@interface Foo : NSObject
+ (instancetype)aConvenienceInit;
@end

/// 编译器报错
NSArray* subviews = [Foo aConvenienceInit].subviews; 
  1. instancetype, unlike id, can only be used as the result type in a method declaration. instancetype只能用于方法声明时的返回值,id的用法更广泛。

参考资料:
https://stackoverflow.com/questions/36020540/why-is-instancetype-used
https://nshipster.com/instancetype/

相关文章

  • 单例

    (instancetype)shareInstance; (instancetype)shareInstance{...

  • 单例

    .h + (instancetype)managerCenter; .m + (instancetype)mana...

  • iOS开发总结(一)

    instancetype和id instancetype比id多一个好处:编译器会检测instancetype的真...

  • iOS init~初始化流程

    UIView有多个init方法 - (instancetype)init - (instancetype)init...

  • iOS笔记-关于instancetype

    参考Adopting Modern Objective-C instancetype说明 instancetype...

  • instancetype

    我们经常忽略 Cocoa 充满了约定,并且这些约定可以帮助编译器变得更加聪明。无论编译器是否遭遇 alloc 或者...

  • instancetype

    instancetype与id,类前缀 instancetype在类型表示上,跟id一样,可以表示任何对象类型 i...

  • instancetype

    本文章翻译自官方文档 使用instancetype关键字作为方法的返回值,能够返回一个类的实例。比如alloc,i...

  • instancetype

    instancetype和id的区别 instancetype在类型表示上,跟id一样,可以表示任何对象类型 in...

  • instancetype

    instancetype在类型表示上,跟id一样,可以表示任何对象类型 instancetype只能用在返回值类型...

网友评论

      本文标题:instancetype

      本文链接:https://www.haomeiwen.com/subject/jkmicktx.html