问题标签 [synthesize]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
293 浏览

objective-c - 访问不同类中的变量和目标 c 中的全局变量

在我的应用程序中,我有多个类:D,问题是我需要从 b 类中的 a 类访问一个变量。为此,我使用合成,我在接口括号之间的.h 中声明我的变量,然后声明变量的属性,它是一个 NSString。然后我使用合成:)。但是当我在 bi 类中访问它时,NSString 等于 nil :§。当我断点检查 NSString 是否被填充时,NSLog 会在 a 类中显示正确的字符串,但在 bi 类中得到了 nil :§。其次,我想听听您的意见:最好使用像 NSUserDefaults 这样的全局变量或老式的 c 全局声明或这种“综合”方式?如果有人愿意帮助我,非常感谢:)。

//在类a .h中

0 投票
1 回答
327 浏览

ios - 精灵套件冒险游戏中的界面

嗨,有人可以向我解释一下苹果的精灵套件冒险游戏中接口的使用。

他们有一个名为的主类APAMultiplayerLayeredCharacterScene和另一个从该类继承的类APAAdventureScene

他们在APAMultiplayerLayeredCharacterScene.h 中有一堆属性,如下所示:

现在在 .m 文件中,他们有这个:

有人可以向我解释这两组属性的用途,类使用哪些属性以及可以从继承自它的类中访问哪些属性?

我对它的工作原理感到困惑,因为这些属性都没有被合成,所以我不明白为什么要使用它们。我以前从未以这种方式使用过它们。

非常感谢!

0 投票
3 回答
1708 浏览

objective-c - 覆盖 getter 只需要 @synthesize

我想为惰性实例化设置 getter 并保留默认设置器。

我需要@synthesize 吗?

为什么 ?

更新:我已经更改了变量和类名,因为它令人困惑。从甲板和卡片到 Foo 和酒吧。

0 投票
3 回答
193 浏览

ios - 合成的 getter 不适用于 NSString 类型的实例变量

嗨,我是Objective-C编程新手。今天我正在编写一个程序,我对它的行为方式感到很困惑。这是程序:

在 main 函数中,当我尝试使用getStr合成访问器打印 str 值时,它给了我错误。为什么这样?我们不允许使用合成getter的,NSString还是我没有getter以正确的方式使用?但仍然综合setter [obj setStr]设置NSString类型的值。我在这里和那里看到了一些关于堆栈溢出问题的答案,但我真的不明白那里提供的答案,所以请用简单的方式为我解释一下。非常感谢。

0 投票
2 回答
86 浏览

objective-c - 为什么分配给这个 ivar 没有效果?

我有一个类,BPGameEngine,具有只读属性,currCharacter。过去,我一直直接(如_currCharacter = someCharacter;)在BPGameEngine. 在一个子类中,我发现自己需要写入这个属性,因此在一个匿名类别中重新声明它,就像这样

然后编译器出现了一个错误(奇怪的是,两天后我无法再重现),暗示需要一个@synthesize 语句,所以我@synthesize currCharacter = _currCharacter;在子类(BPGameKitMPEngine)中添加。

我没有超类中添加类似的匿名类别,因为我只是直接使用 iVar。然后我发现在 super( )的调用中调用_currCharacter = someCharacter;的方法中的行根本什么也没做。出现在调试器中,并且不是 nil,但是在执行该行之后,仍然存在. 奇怪的是,在子类中添加一个类似的匿名类别解决了这个问题,就像删除了一样(这不再导致 Xcode 抱怨编译器错误)。BPGameEngineBPGameKitMPEngine[super methodContainingAssignmentToCurCharIvar]_currCharactersomeCharacter_currCharacternil@synthesize

对 an 的不一致要求@synthesize似乎一定是 Xcode 中的一个错误,但其余部分让我很难过。有人可以解释@synthesize在子类中存在的问题吗?

0 投票
1 回答
35 浏览

multithreading - 核心数据多线程综合属性无

我有一个使用核心数据的应用程序。我的应用程序在后台线程中进行一些处理并将输出保存到 Core Data,同时,我的主/UI 线程对 Core Data 执行读取操作。

现在,我试图在我的托管对象中合成一个属性以创建自定义 getter 和 setter(我想自动将长字符串保存在文件中,然后简单地保存路径)。但是,稍后在主线程中读取这些对象时,它们变成了 nil。我尝试删除我的自定义 getter 和 setter 并简单地@dynamic attr替换为@synthesize attr = _attr,但即便如此它也停止了工作。(我清理了我的项目并将其从模拟器和我一直在尝试的设备中删除)。

在我恢复原始语法的那一刻,一切又开始工作了。知道什么可能导致这种行为吗?

0 投票
2 回答
113 浏览

objective-c - Objective-C:无法访问合成变量

我正在使用 Cocos2d 并希望从另一个 CCScene 访问一个变量 (CakesEaten)。

给出错误:在 MainScene 类型的对象上找不到属性“CakesEaten”。这是我在构建时收到的唯一错误。

0 投票
4 回答
1450 浏览

ios - iOS 7 Dev - @synthesize 不会自动创建 ivars

我目前正在使用最新版本的 Xcode (v5.0.2),我的应用程序的部署目标是 iOS 7.0。

我的问题是,无论在哪个班级,我都可以在标题中设置一个属性

前任:@property (strong, nonatomic) NSString *firstName;

在实现文件中,我可以合成它就好了

前任:@synthesize firstName;

我的问题是我不能_firstName在代码中使用。我在其他项目中使用了自动 ivars 就好了(属性名称前有下划线)。

Xcode 抱怨并告诉我将其更改为不带下划线的属性名称。我不明白为什么这个项目没有自动为我创建带下划线的 ivars。我知道在旧版本的 Objective-C 中,您必须自己执行此操作,但对于 iOS 7 则不需要。

谢谢!

0 投票
3 回答
381 浏览

ios - IOS:财产和自我

当我声明一个时,NSString我只是这样做:

如果我想允许从其他类访问这个字符串,我会以这种方式添加一个属性

我写合成

现在我有一些问题:

  1. 如果我使用一个属性,我是否也必须使用接口中的简单声明?
  2. 如果我my_string用作财产,我必须总是self.在以前使用吗?
  3. 如果我使用一个属性,是否有必要@synthesize为每个都写?(因为我看到有时没有必要。
0 投票
1 回答
46 浏览

ios - 属性实现问题

在头文件中,我声明了以下对象:

在实现文件中,我合成了 NSDictionary :

在另一个头文件中,我也在做同样的事情:

但是在实现文件中,综合代码行被标记为错误:

错误是:

我不明白为什么它在第一个文件中而不是在第二个文件中......