gpt4 book ai didi

objective-c - 添加 getter 会导致使用下划线不正确的语法

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:13 25 4
gpt4 key购买 nike

我有一个带有以下标题的类:

#import <Foundation/Foundation.h>

@interface CustomClass : NSObject

@property (strong, nonatomic) NSString *foo;

@end

使用以下未显示任何错误的实现:

#import "CustomClass.h"

@implementation CustomClass

- (void) setFoo:(NSString *)foo {
_foo = foo;
}

@end

作为 Objective-C 的初学者,当我在实现中添加以下方法时,我感到很困惑:

- (NSString *)foo {
return _foo;
}

因为现在 use of undeclared identifier 'title' 方法有错误,它建议我将 _foo 更改为 foo。不仅在新加的方法里这么说,在之前的setter方法里也这么说。我曾尝试查看情况,但没有找到满意的答复。相关问题说说@synthesize,但是我有read that it is not necessary ,所以我不确定是什么问题。

提前致谢!
-金鸽

最佳答案

属性不会自动合成如果您为该属性实现 both setter 和 getter 方法,那么您必须明确地合成它:

@synthesize foo = _foo;

(或显式添加实例变量_foo。)

如果您为只读属性实现 getter 方法,这同样适用。

(如果你为一个属性实现了所有必要的访问器方法,那么编译器不再假定此属性必须由实例支持变量。)

关于objective-c - 添加 getter 会导致使用下划线不正确的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155881/

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