我已经为iPhone编写了一些关于核心数据的教程,但似乎都不起作用。幸运的是,其中一个教程站点提供了源代码和一个不断弹出的问题(希望这是解释为什么所说的教程不起作用),是这样的:
@synthesize window = _window;大约有半打这样的合成会在我的表视图文件中自动生成,但没有一个教程使用它们,这给我带来了一大堆错误。工作源代码中的行是:
@synthesize window;那么,这是为什么?我在网上读到@synthesize的第一个版本是用于内存管理的,但似乎没有人使用它。
发布于 2011-10-12 13:36:47
这里唯一的区别是实例变量在自动生成时的命名方式。
在此版本中:
@synthesize window = _window;您实际上得到了这些(假设您没有将@property设置为readonly):
UIWindow *_window;
- (UIWindow *)window;
- (void)setWindow:(UIWindow *)aWindow;使用其他版本:
@synthesize window;你会得到这个:
UIWindow *window;
- (UIWindow *)window;
- (void)setWindow:(UIWindow *)aWindow;第二个版本相当于:
@synthesize window = window;发布于 2011-10-12 13:41:55
像这样的语句:
@synthesize window = _window;表示window是映射到实例/成员变量_window的属性。
Whera
@synthesize window;等同于
@synthesize window = window;发布于 2011-10-16 04:50:07
我在学习教程时也遇到了同样的问题。
对于我的东西,我可以用最小的改动让它工作的方法是在头文件接口部分添加UIWindow *window;,因为这不是由Xcode自动添加的,而是教程中的东西所期望的。
然后,我更改了它调用
[window addSubview:tabBarController.view];至
[self.window addSubview:tabBarController.view];现在,这似乎起作用了。我正在阅读的教程是基于上一版本的Xcode,所以我认为事情已经发生了变化。Xcode行不是自动添加的,并且UIWindow已经开始使用_window实现自己的功能。
喜欢它的人可以给出一个更清晰的解释,因为我在这里有点摸不着头脑。
https://stackoverflow.com/questions/7735550
复制相似问题