gpt4 book ai didi

iphone - 使用属性和不访问 ivar 之间的区别

转载 作者:可可西里 更新时间:2023-11-01 03:39:29 26 4
gpt4 key购买 nike

使用属性或直接访问 ivar 的特定性能和行为差异。

对于全局变量,使用这个有什么区别:

@interface myClass (){

UIImageView *myView;
}

-(void)loadView{

[super loadView];
myView = [[UIImageView alloc] initWithFrame:CGrectMake(0,0,100,100)];
}

然后这样做:

    @interface myClass (){

}

@property (nonatomic, strong) UIImageView *myView;

@synthesize myView = _myView;

-(void)loadView{

[super loadView];
myView = [[UIImageView alloc] initWithFrame:CGrectMake(0,0,100,100)];
}

每种方法对我们有什么好处?推荐始终使用属性的原因是什么?

最佳答案

在第一种情况下,您的实例变量(或 ivar)myView 是类私有(private)的,不能被其他类访问。​​

在第二种情况下,您提供了一个允许其他类通过合成访问器访问您的 ivar 的属性。声明属性的替代方法是编写您自己的访问器方法。 @synthesize 符号可以为您做到这一点。

请参阅有关 declared properties 的 Apple 文档

关于iphone - 使用属性和不访问 ivar 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com