0

こんにちは私はこの質問への答えを見ました:

あるビューから別のビューに値を渡す方法

そして、私はいくつかの問題を抱えています。AppDelegateのヘッダーファイルに文字列を保存しました。

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
    NSString *commString;
}

@property (strong, nonatomic) UIWindow *window;

@end

これにアクセスして、1つのビューで変更する必要があります。次に、それを別のビューに表示します。前のページの回答でこれを簡単に説明していますが、回答の2番目の部分で問題が発生しています。それは私にさせません:

AppDelegate.commString = myString; //mystring being an NSString

何かアイデアはありますか?

ありがとう

4

1 に答える 1

4

問題は2つあります。まず、クラスのivarにアクセスしようとしていること、そして次に、それがインスタンスではなくクラスであることです。 [[UIApplication sharedApplication] delegate];複数の場所で簡単にアクセスできるように、デリゲートクラスの有効なインスタンスをシングルトンとして返しますが、ivarを@propertyとして宣言する必要があります。そうしないと、(非常に不安定な)構造体アクセス演算子を使用するリスクがあります。

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) NSString *commString; //@synthesize this
@property (strong, nonatomic) UIWindow *window;

@end


AppDelegate *del = [[UIApplication sharedApplication] delegate];
del.commString = myString;
于 2012-08-11T14:34:14.877 に答える