IOS

2014-02-21 4 views
0

에서의 ViewController 코드를 실행하기 전에 장치 ID를 얻기 나는 장치 ID를 얻을 수있는 코드의 평화를 가지고있다. 뷰 컨트롤러를 실행하기 전에이 함수를 사용하지 않기 때문에 ViewController에서 NSlog를 사용하면 NULL이 먼저 실행되지 않기 때문에 NULL이기 때문입니다. UITableView를 실행하기 전에 먼저 이와 같은 변수를 가져와야합니다. 어떤 아이디어라도 훌륭한 감사 일 것입니다.IOS

+0

registerForRemoteNotificationTypes 메서드는 didFinishLaunchingWithOptions에서 실행됩니다. 가장 먼저 실행할 수있는 곳입니다. 감사합니다. – user3328028

답변

0

하여 전체 프로젝트에 어디서나 얻을 수 있습니다, 당신은 NSUserDefaults에서 deviceToken 값을 절약 할 수 있습니다 like

다음 줄을 didRegisterForRemoteNotificationsWithDeviceToken 메서드에 넣습니다. 이

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

{ 

    [[NSUserDefaults standardUserDefaults] setObject:deviceToken forKey:@"DeviceToken"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 

} 

같은 ppdelegate.m 또한보기 Controller.m과의 viewDidLoad 방법

에서이 코드 줄을 추가하고 그 값을 검색합니다.

[[NSUserDefaults standardUserDefaults] objectForKey:@"DeviceToken"]; 
0

당신은 얻을 NSUserDefaults

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{ 
    NSUUID *identifierForVendor = [[UIDevice currentDevice] identifierForVendor]; 
    NSString *deviceId = [identifierForVendor UUIDString]; 
    NSUserDefaults *userRegistrarionDetails = [NSUserDefaults standardUserDefaults]; 
    [userRegistrarionDetails setObject:deviceId forKey:@"deviceID"]; 
    [userRegistrarionDetails synchronize]; 
} 

의 DeviceID를 저장 그리고 당신은 AppDelegate에에서

NSUserDefaults *userRegistrarionDetails = [NSUserDefaults standardUserDefaults]; 
NSString * deviceId = [userRegistrarionDetails objectForKey:@"deviceID"]; 
NSLog(@"%@", deviceId); 
+0

이것은 ViewController에서 곧바로 사용할 수 있음을 의미합니까? – user3328028

+0

identifierForVendor는 푸시 알림을 전화로 전송하는 데 필요한 식별자가 아닙니다 ... –