1

私は現在、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

私のプログラムは動作しますが、なぜこれが問題を引き起こすのかを知りたいです。どうもありがとう。

4

0 に答える 0