Получение токена устройства из NSData дает исключение - PullRequest
1 голос
/ 13 сентября 2011

Я получаю токен устройства в NSData и преобразовываю его в NSString. Это токен устройства печати правильно

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {


    deviceToken = [[devToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];



    deviceToken = [deviceToken stringByReplacingOccurrencesOfString:@" " withString:@""];


    NSLog(@"Device Token from NSdata is %@",deviceToken);


 }

И я передаю это из другого класса

self.Token = [AppDelegate_iPhone sharedAppDelegate].deviceToken;

но в этой строке происходит сбой

 NSLog(@"Device Token from NSdata is %@",deviceToken);

*** -[CFString respondsToSelector:]: message sent to deallocated instance 0x1f9d00

Ответы [ 2 ]

3 голосов
/ 13 сентября 2011

Вы просто присваиваете значение deviceToken. Вам необходимо сохранить значение, иначе оно будет выпущено сразу после.

deviceToken = [[deviceToken stringByReplacingOccurrencesOfString:@" " withString:@""] retain];
0 голосов
/ 13 сентября 2011

Вот как я это делал в прошлом:

const void *devTokenBytes = [devToken bytes];
NSString *deviceToken = [[[[devToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""] stringByReplacingOccurrencesOfString: @">" withString: @""] stringByReplacingOccurrencesOfString: @" " withString: @""];

...