gpt4 book ai didi

ios - 名为 "image"的属性没有可见的 ivar 吗?

转载 作者:行者123 更新时间:2023-11-29 03:12:21 25 4
gpt4 key购买 nike

假设虚拟 VC 有一个私有(private)属性“image”

虚拟VC.h

@interface dummyVC : UIViewController
@end

虚拟VC.m

@interface dummyVC ()
@property (nonatomic, strong) UIImage *image;
@end


- (void)setImage:(UIImage *)image
{
if(!_image) { // compiler tells me _image is a 'undeclared indentifier'
//do something
}
}

如果我尝试在其 setter 中使用 _image,编译器会告诉我我正在使用 undeclared identifier

但是,如果我将属性名称更改为 image1anotherImage。使用_image1_anotherImage没有问题。

谁能解释为什么会这样?

最佳答案

我猜测问题是要么

  1. 你是说

    @synthesize image;

    没有告诉我们,或者

  2. 您提供了一个 getter 方法 image 而没有告诉我们。

当你说做这些事情中的任何一个时,你提供了一个setter,就像你在这里所做的那样(setImage:),然后合成的实例变量被命名为图像,而不是_image。但是,如果您同时提供 setter 和 getter,或者您@synthesize,则合成的实例变量被命名为 _图片

我敢打赌,这就是您的案例之间的区别。

关于ios - 名为 "image"的属性没有可见的 ivar 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22122878/

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