弧错误?现有的ivar代表,用于unsafe_unretained财产

时间:2012-11-08 17:55:25

标签: xcode automatic-ref-counting

我目前正在阅读在Xcode中使用arc之前编写的书中的教程。我有完全相同的问题,如此处所述:

'Existing ivar 'delegate' for unsafe_unretained property 'delegate' must be __unsafe_unretained

这个问题已得到解答,但尚未明确说明原因。

本书中的代码声明我使用此代码声明成员变量:

the.h File
___________
#import <Cocoa/Cocoa.h>
@interface TestProgramDelegate : NSObject <NSApplicationDelegate> {
     NSWindow *window;
     NSTextField *message;
}

@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSTextField *message;
@property (assign) IBOutlet NSTextField *inputText;
@end


the.m file
__________
#import "the.h" //File

@implementation theHFileAppDelegate

@synthesize window
@synthesize message
@synthesize inputText

当我在.m文件中合成变量时,收到以下错误消息: 具有assign属性的属性“window”的现有ivar“window”必须为__unsafe_unretaied。

但是当我删除成员变量的声明时,如书中所述,一切正常,我没有收到错误。

the.h File
___________
#import <Cocoa/Cocoa.h>
@interface TestProgramDelegate : NSObject <NSApplicationDelegate> {
     NSWindow *window;
     NSTextField *message;
}

@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSTextField *message;
@property (assign) IBOutlet NSTextField *inputText;
@end


the.m file
__________
#import "the.h" //File

@implementation theHFileAppDelegate

@synthesize window
@synthesize message
@synthesize inputText

我的程序有效,但我想了解为什么会导致麻烦。非常感谢。

0 个答案:

没有答案