2009-08-08 7 views
0

私のAppDelegateでNSStringが宣言されています。私はViewクラスからその文字列を読み書きしようとしていますが、getter/setterメソッドが見つからないというエラーが表示されます。ここでAppDelegateで宣言されたNSStringのセッターとゲッター

は、私はそれにアクセスしています方法は次のとおりです。

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 

appDelegate.myString = @"test"; 
+0

はどのようにしてのmyStringを宣言していますか? ...そして、あなたは@synthesizeを使用していますか、またはgetter/setterペアを直接実装していますか? – bbum

答えて

4

あなたが定義されmyString性質を持っているにはどうすればよいですか?

あなたが言うようにそれにアクセスするために、あなたは3つの事で必要な:、インターフェイスで

定義された変数と@propertyを持っている、と実装で@synthetize。以下のような

何か:

// MyAppDelegate.h 
@interface MyAppDelegate 

NSString *myString; 

@end 

@property NSString *myString; 


// MyAppDelegate.m 
@implementation MyAppDelegate 

@synthetize myString; 

@end 
+0

ありがとう! @synthesizeと@propertyが見つからなかった – user140736

+0

技術的には、プロパティやシンセサイズは必要ありません。setterとgetter、つまりメソッドが必要です - (NSString *)myStringと - (void)setMyString:(NSString * )inString。 @propertyはそれらのメソッドを宣言するだけで、@synthesizeはコードを書くだけですが、実際に@propertyや@synthesizeを使わずにドット表記を使ってアクセスすることができます。 –

関連する問題