在objective-c中声明属性和@property之间的区别

在objective-c中声明属性和@property之间的区别,第1张

概述我知道@property在 Objective-c中生成getter和setter.但是我已经看到了一些类,它们用各自的@property声明属性,有时候只是@property,没有属性和接缝以相同的方式工作.有什么不同? I know that the @property generates the getters and setters in Objective-c. 不,你没有. @prop 我知道@property在 @L_502_0@中生成getter和setter.但是我已经看到了一些类,它们用各自的@property声明属性,有时候只是@property,没有属性和接缝以相同的方式工作.有什么不同?解决方法

I kNow that the @property generates the getters and setters in Objective-c.

不,你没有. @property声明一个属性,它是一个getter,也可以是一个setter(用于读/写属性). getter和setter的生成是由实现中的@synthesize(或者你编写getter和setter)完成的.

But I’ve seen some classes where they declare attributes with their respective @property

你的意思是这样的吗?

@interface Foo : NSObject{    bar* anAttribute; // <<=== this is an instance variable}@property (retain) bar* anAttribute;@end

在现代的Objective-C运行时,如果你@synthesize属性,你可以省略实例变量声明,编译器会把它放在你身上.是否明确声明实例变量是个人偏好的问题.

只是为了让你感到困惑,在最新的编译器中,你可以省略@synthesize,只要你没有明确地创建一个getter或setter,编译器就会把它放进去.

总结

以上是内存溢出为你收集整理的在objective-c中声明属性和@property之间的区别全部内容,希望文章能够帮你解决在objective-c中声明属性和@property之间的区别所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存