私は現在、Xcode でアークを使用する前に書かれた本のチュートリアルに従っています。ここに記載されているのとまったく同じ問題があります。
unsafe_unretained プロパティ 'delegate' の既存の ivar 'delegate' は __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 ファイルで変数を合成すると、次のエラー メッセージが表示されます。
しかし、本に記載されているようにメンバー変数の宣言を削除すると、すべてが正常に機能し、エラーは発生しません。
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
私のプログラムは動作しますが、なぜこれが問題を引き起こすのかを知りたいです。どうもありがとう。