我们必须使用auto和用户instancetype的位置?解决方法 Objective C中的auto继承自C,表示 auto keyword
defines a local variable as having a local lifetime.
Keyword auto uses the following Syntax:
[auto] data-deFinition; As the local lifetime is the default for local
variables,auto keyword is extremely rarely used.Note: GNU C extends auto keyword to allow forward declaration of
nested functions.
如果您正在寻找C 11的auto或C#的var-in的等价物,则使用Objective C ID.
ID a = [Nsstring new];ID b = [NSNumber new];
但是在编译时,ID没有像C 11中的auto一样解析为具体类型.
instancetype是一个上下文关键字,可用作结果类型,表示方法返回相关的结果类型.例如:
@interface Person+ (instancetype)personWithname:(Nsstring *)name;@end
与ID不同,instancetype只能用作方法声明中的结果类型.
使用instancetype,编译器将正确地推断personWithname:的结果是Person的实例.如果你试图打电话会产生错误
[[Person personWithname:@"Some name"] methodThatNotExistsInPerson];
如果您将使用ID编译器不会这样做,您将无法修复它并将收到运行时错误!
Instancetype用于为Objective C添加更多“强类型”.
总结以上是内存溢出为你收集整理的ios – “auto”和“instancetype”类型的主要区别是什么?全部内容,希望文章能够帮你解决ios – “auto”和“instancetype”类型的主要区别是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)