gpt4 book ai didi

ios - 简单的Objective-C属性设置错误

转载 作者:行者123 更新时间:2023-12-01 19:11:16 27 4
gpt4 key购买 nike

在我的.h界面中:

@property (nonatomic, strong) UIView *myView;

在我的.m中:
- (void)setMyView:(UIView *)aView {
_myView = aView; //Use of undeclared identifier "_myView"
}

为什么会出错?

最佳答案

我猜想,除了您的显式“setter”方法之外,您还为myView属性编写了自己的显式“getter”方法。

当您同时为属性提供“setter”和“getter”方法时,编译器不会自动为您生成一个ivar。这很有道理,因为您的属性实现有可能没有使用ivar。

在这种情况下,您必须声明自己的ivar。只需在.m中执行此操作:

@implementation MyClass {
UIView *_myView;
}

这样,您可以在“setter”和“getter”方法中引用 _myView ivar。

另一种可能性是,该属性是在父类中声明的,并且您将覆盖该属性的“setter”方法。在这种情况下,您无权访问ivar。您需要这样做:
- (void)setMyView:(UIView *)aView {
[super setMyView:aView];

// do other stuff here
}

关于ios - 简单的Objective-C属性设置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429679/

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