通常,只有当另一个类可以访问它时,我才会使用“属性”插座和变量。否则它在接口块中声明。但我看到有些是创建“属性”出口和变量,但他们不能在另一个类中访问这些。所以任何人都可以解释,如果我们不从另一个类访问某些出口或变量,为什么我们需要“属性”出口和变量?
问问题
869 次
3 回答
2
声明它们是为了在 NIB/XIB 编辑器(又名 Interface Builder)中公开它们。
这允许您将视图与 NIB 编辑器中的对象属性相关联,并且 XIB 取消归档程序将在初始化时设置属性,以便您可以在初始化后轻松地从类中引用这些实例。
于 2013-07-17T06:21:31.790 回答
2
如果您不需要从另一个类访问插座,则无需将其设为属性。您可以将其设为您的实例变量@implementation
:
@implementation ViewController {
IBOutlet UIView *someView;
}
...
有些人不喜欢使用普通的实例变量,而更喜欢总是使用属性,即使是私有数据也是如此。如果您不使用 ARC,则使用属性而不是原始实例变量特别有用,因为您可以依靠属性设置器来保留和释放它们的对象。如果您使用 ARC,这不是问题。
如果你想使用一个属性但你不想在你的 中声明这个属性,你可以在你的文件@interface
顶部放置一个类扩展名(在你的上方),然后把属性放在那里:.m
@implementation
@interface ViewController () {
@property (nonatomic, strong) IBOutlet UIView *someview;
@end
@implementation ViewController
...
于 2013-07-17T06:43:11.613 回答
1
我想你是在问属性。属性用于方便您编写 getter 和 setter。
为什么我们需要getter setter?有一个地方我们可以访问一个变量,以便将来如果我们需要添加一些规则,我们可以在不更改整个代码的情况下做到这一点。
为什么使用getter和 setter?
出口供 interfacebuilder 访问属性。
于 2013-07-17T06:35:40.320 回答