gpt4 book ai didi

iphone - 访问实例变量的语法? ( Objective-C )

转载 作者:可可西里 更新时间:2023-11-01 04:04:41 25 4
gpt4 key购买 nike

在 Objective-C 中访问实例变量的正确语法是什么?

假设我们有这个变量:

@interface thisInterface : UIViewController {
NSMutableString *aString;
}

@property (nonatomic, retain) NSMutableString *aString;

而且它是合成的。

当我们想要访问它时,我们首先要分配和初始化它。在使用 Objective-C 编程大约一个月后,我看到了两种不同形式的语法。我见过人们只是简单地使用 aString = [[NSMutableString alloc] initWithString:@"hi"],他们就这样分配字符串;我还看到人们从 self.aString 开始,然后他们继续初始化他们的 ivar。我想我只是想弄清楚初始化实例变量的最合适方法是什么,因为在前面的示例中,我收到了 EXC_BAD_ACCESS 错误。在添加 self. 之后,它并没有出现。

如果这是一个重复的问题,请原谅我,但在阅读了一些关于 SO 的帖子后,这让我很好奇。我正在尝试使用 Objective-C 学习正确的语法,因为我更喜欢正确而不是马虎。

最佳答案

如果您已经在 .m 文件中声明了一个属性并 @synthesize 它,您只需像这样设置它:

self.aString = @"hi"; // or [[NSMutableString alloc] initWithString:@"hi"];

使用 self.varName 可以利用您的属性声明的实际作用 - 它处理新值的保留(因为您的属性具有 retain 属性),释放旧值等。

如果你这样做:

aString = someValue;

...您可能会泄露 aString 中的原始值,因为在不使用 self.aString 的情况下,您是直接访问变量而不是通过属性访问变量。

关于iphone - 访问实例变量的语法? ( Objective-C ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360147/

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