0

これは非常に基本的なことですが、デバイス トークンを取得して文字列に格納し、ViewDidLoad メソッドのラベルに配置 (表示) する必要があります。考えられる解決策は何ですか?iOS開発は初めてです。グローバル変数を使用する必要がありますか? または考えられる解決策はありますか?

これは私のコードです。

AppDelegate.m

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

NSString *str = [NSString stringWithFormat:@"Device Token=%@",deviceToken];

NSLog(@"%@", str);

//get the string and display it on the ViewDidLoad method.

}

私を助けてください。グローバル変数を使用してその文字列にアクセスするには?

私のViewController.mクラスで

- (void)viewDidLoad
{
   [super viewDidLoad];

   NSString *getToken = @"Token from AppDelegate";

}

そんな感じ。

4

2 に答える 2

2

トークンをユーザーのデフォルトに保存できます。

[[NSUserDefaults standardUserDefaults] setValue:str forKey:@"DEVICE_TOKEN"];

そして、あなたのviewDidLoadで:

NSString *getToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"DEVICE_TOKEN"];

しかし、他にもアプローチがあります: グローバル変数、永続層、NSNotificationなどです。

編集:

ここでは、標準ユーザーのデフォルトを登録する方法について説明します。

EDIT2:

トークン文字列を取得するために、次のことを行います

NSString *deviceTokenString = [deviceToken description];
deviceTokenString = [deviceTokenString stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
deviceTokenString = [deviceTokenString stringByReplacingOccurrencesOfString:@" " withString:@""];

次に、deviceTokenString空白やその他の文字なしで完全な値を取得します。プッシュ通知をトリガーする準備が整いました。

于 2013-08-08T08:13:08.930 に答える
0

通常、現在のプッシュ トークンを格納するために、UIApplication (または UIApplication サブクラス) にカテゴリを作成します。

@interface MyApplication : UIApplication

@property (nonatomic, copy) NSData *pushToken;

@end

@ambが述べたように、それにはさまざまな方法があります。

于 2013-08-08T08:37:21.867 に答える