ios – “auto”和“instancetype”类型的主要区别是什么?

ios – “auto”和“instancetype”类型的主要区别是什么?,第1张

概述auto和clang类型instancetype有什么区别? 我们必须使用auto和用户instancetype的位置? Objective C中的auto继承自C,表示 auto keyword Defines a local variable as having a local lifetime. Keyword auto uses the following syntax: [auto] d auto和clang类型instancetype有什么区别?
我们必须使用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”类型的主要区别是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存