2

こんにちは。私はブラジル人なので、英語の間違いはご容赦ください。

自分のデバイスにプッシュ通知を送信しています。my で deviceToken を取得できますAppDelegate.m

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {  
    NSLog(@"Device Token Global : %@", deviceToken);   
}

LoginViewController.mしかし、ログインを実行して Web サービスに POST するという名前のクラスがありますdeviceToken(これにより、mySQL テーブルに挿入されます)。deviceTokenこれを LoginViewController.m クラスの文字列として取得するにはどうすればよいですか?

4

2 に答える 2

9

トークンを文字列に変換します。

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

NSUserDefaults選択したアプリケーション固有のキーを使用してトークンを保存します。

[[NSUserDefaults standardUserDefaults] setObject:tokenString forKey:@"MyAppSpecificGloballyUniqueString"];

次に、アプリの別の場所で取得します。

NSString *tokenString = [[NSUserDefaults standardUserDefaults] objectForKey:@"MyAppSpecificGloballyUniqueString"];

を使用する必要はありませNSUserDefaults。あらゆる種類のグローバル状態、シングルトン オブジェクト、レジストリ、または依存性注入を使用して、値を渡すことができます。それをどうするかはあなた次第です。これは単なる例です。

于 2012-12-19T03:59:54.630 に答える
0

シングルトン クラスを使用して、デバイス文字列 (deviceString) を作成します。

singletonObject.deviceString = [deviceToken description];
singletonObject.deviceString = [tokenString stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]; 
singletonObject.deviceString = [tokenString stringByReplacingOccurrencesOfString:@" " withString:@""];

これで、他のクラスで singletonObject.deviceString を使用できるようになりました

于 2012-12-19T11:06:06.770 に答える