2014-10-12 2 views
2

мне удалось прочитать данные в сегодняшнем Extensions из приложения компаньона с кодом, какЧтение данных из Today Extension (NSUserDefaults) работает на симуляторе, но не в устройстве

NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.cdm.TodayExtensionSharingDefaults"]; 
NSData *encodedObject = [defaults objectForKey:@"DataContactList"]; 
CV_DataContactList *object = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject]; 

с соответствующим написанием кода в приложении компаньона

NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.cdm.TodayExtensionSharingDefaults"]; 
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:self]; 
[defaults setObject:encodedObject forKey:@"DataContactList"]; 
[defaults synchronize]; 

Я создал группу приложений и добавил в возможности как целевого (приложения расширения, так и компаньона). Все работает отлично в симуляторе, и данные передаются, как только приложение-компаньон меняет их.

Но когда я запускаю расширение на устройстве, он не может прочитать данные. Я получил <Warning>: *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL в журнале консоли. Я попытался также генерировать профили обеспечения, с правой appid и группой приложений, с нуля, но это не решило.

Я ценю любую помощь. Благодаря!

+0

У меня такая же проблема ... не могли бы вы рассказать мне что-то ???? вы его переделали? – vivian

+0

Я все еще с проблемой ... Я бы разместил решение на случай, если найду его. –

ответ

0

Попробуйте добавить файл класса, в котором вы сохраняете свои данные в объекте TodayExtension> Build Phases> Compile Sources. Вы добавили в него только файлы .m. Например: Если сохраненный файл данных является MyData.m, проверьте, представлен ли этот файл в Target вашего проекта и сегодня extn target.

Если это не сработает, и вы уже нашли решение, пожалуйста, добавьте его, чтобы оно было полезно позже.