gpt4 book ai didi

objective-c - 未声明的标识符初始化一个框架

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:33 24 4
gpt4 key购买 nike

我正在尝试初始化一个框架。这是代码。我不明白为什么我从 Xcode 收到消息 Undeclared identifier _frame。它在 .h 文件中,我在实现中用它的名字调用它。我哪里错了?

#import <UIKit/UIKit.h>

@interface BNRHypnosisView : UIView

@property (nonatomic) CGRect _frame;

@end


#import "BNRHypnosisView.h"

@implementation BNRHypnosisView

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];

if (self) {
_frame = frame;
}

return self;
}


@end

最佳答案

当您声明一个名为 _frame(一个下划线)的属性时,Objective-C 会合成一个 getter、一个 setter 和一个名为 __frame(两个下划线)的实例变量。将您的分配更改为使用 self._frame 通过 setter 访问属性,或使用 __frame 直接访问变量:

if (self) {
__frame = frame;
}

更好的是,将属性重命名为不带下划线的名称,以与 Apple 建议的属性命名方式保持一致。

关于objective-c - 未声明的标识符初始化一个框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24488697/

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