2015-04-01 5 views
4

Я пытаюсь использовать права на группы приложений в своем приложении для NSUserDefaults, обрабатывающих данные между приложением iPhone и расширением WatchKit.NSUserDefaults в группах приложений не работает

Я пошел в Capabilities в цель iPhone и включил группы приложений и убедился, что group.com.316apps.iPrayed был выбран. Затем я пошел в TargetKit Extension Target и сделал то же самое для своих возможностей.

На стороне iPhone в приложение, которое я поставил в следующем коде:

PFUser *me2 = [PFUser currentUser]; 
     NSLog(@"USERNAME%@", me2.username); 
       NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.316apps.iPrayed"]; 
     [testDefaults setObject:me2.username forKey:@"username"]; 
     [testDefaults setObject:me2.password forKey:@"password"]; 

     [testDefaults synchronize]; 

В WatchKit InterfaceController, у меня есть следующие, но NSLog всегда показывает 'нуль'

NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.316apps.iPrayed"]; 
    NSString *theirUser = [testDefaults objectForKey:@"username"]; 
    NSString *theirPass = [testDefaults objectForKey:@"password"]; 
    NSLog(@"%@", theirUser); 

Почему WatchKit не читает NSUserDefaults правильно?

ПРИМЕЧАНИЕ Идентификатор моего пакета отличается для цели расширения набора часов. Нужен ли мне новый идентификатор Apple?

ответ

0

Это нормально ваши идентификаторы пучка не то же самое, однако они должны быть в таком формате

The App Bundle ID -> com.companyName.productName 
The Extension Bundle ID -> com.companyName.productName.extensionName 

Если они следуют форматы выше, то обратитесь к ответу ниже

Вы должны добавить наблюдатель, который знает, когда значение в NSUserDefaults изменилось.

Обратитесь к этому коду:

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(userDefaultsDidChange:) 
               name:NSUserDefaultsDidChangeNotification 
               object:nil]; 
+0

С WatchOS 3 (я думаю) userDefaults больше не доступны на часах, даже если группа приложения является правильной. – mxcl

Смежные вопросы