gpt4 book ai didi

xcode - 转换为自动引用计数 (ARC) : 'Use of undeclared identifier' errors

转载 作者:行者123 更新时间:2023-12-03 04:19:19 26 4
gpt4 key购买 nike

在一个非常大的项目中,我到处都使用了自动合成的属性:

//MyClass.h file:
@interface MyClass : NSObject

@property (nonatomic, retain) NSString *deviceName;
@property (nonatomic, retain) NSString *deviceID;

@end

//MyClass.m file:
#import "MyClass.h"

@implementation ApplicationStatus
// no @synthesize used at all.

-(void)dealloc{

[_deviceName release]; // gives errors only while converting to ARC with LLVM 5.0
[_deviceID release];

[super dealloc];
}

@end

上面的代码在非 ARC 模式下编译良好,在 ARC 转换过程中也能在较旧的 Xcode 版本中编译良好。当尝试使用最新的 LLVM 5.0 编译器(最新的 Xcode)进行转换时,它给了我数百万个错误: enter image description here

这是什么原因造成的?我现在是否必须手动创建数百个实例变量并手动@synthesize它们?这难道不是苹果在所有 WWDC 上宣传的“少写代码”理念的倒退吗?

最佳答案

我刚刚遇到了同样的问题。

按照 Apple 的指导,我虔诚地在 init 外部使用 self. 并在 init 中使用 _。正如您所写,在 Xcode 5 中迁移到 ARC 时,这会中断。

我发现最简单的方法是:

@synthesise deviceName = _deviceName;

更改所有引用是愚蠢的、痛苦的、错误的,对于只读变量来说,甚至不是一个选项。

自动完成功能在设置综合语句方面非常智能,您只需要它们来处理要在 init 中访问的内容。

关于xcode - 转换为自动引用计数 (ARC) : 'Use of undeclared identifier' errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18780336/

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