gpt4 book ai didi

ios - 属性(property)申报疯狂 iOS 7

转载 作者:行者123 更新时间:2023-12-01 17:39:42 24 4
gpt4 key购买 nike

我对 iOS 类中的属性声明束手无策。在我的 .h 文件中,我有以下声明:

@property (strong, nonatomic)NSString *sessionID;

在我的 .m 文件中,我有以下代码:
- (void)setSessionID:(NSString *)aSessionID
{
_sessionID = aSessionID;
// Custom code to set this in a global context
}

这一切都很好,编译没有问题。现在,如果没有设置任何内容,我需要让 sessionID 返回一个默认值,但是当我添加这一行时:
- (NSString *)sessionID
{
return _sessionID ? _sessionID : @"defaultSession";
}

然后是 setSessionID 中的第一行:
_sessionID = aSessionID;

导致“使用未声明的函数_sessionID。你的意思是aSessionID”的错误,我不知道是什么原因造成的。我有这么多带变量的类,以前从未见过......什么是造成这个?我重新启动了 Xcode,清理了项目并且没有运气。如果我删除 - (NSString *)sessionID 方法,那么它就会停止提示。但是当我添加方法声明时,Xcode 将其标记为错误。

接受任何指针! :)

编辑:我还注意到,在这个类中,如果我添加任何属性访问器方法,它会提示 ivar .. 例如我声明了另一个属性
@property (strong, nonatomic) NSString *userEmail

我添加 -(NSString *)userEmail 的那一刻,它上面的 ivar _userEmail 用法都变得未声明.. :(

最佳答案

如果您同时覆盖属性的 setter 和 getter,编译器将不会自动为您合成支持 ivar。您需要进行手动合成,

@synthesize sessionID = _sessionID;

关于ios - 属性(property)申报疯狂 iOS 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24353264/

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