у меня есть вопрос о Keyboard Extension
.
Приложение-контейнер имеет много изображений (например, > 100 изображений и всего 100 МБ), и приложение-контейнер сохранено с использованием NSUserDefaults
.
вот так:
NSMutableArray* arr = [NSMutableArray new];
for(NSInteger i = 0; i < 100; i++)
{
UIImage* img = [UIImage imageNamed:[NSString stringWithFormat:@"img%ld",i]];
NSData* data = UIImagePNGRepresentation(image);
[arr addObject:data]
}
NSUserDefaults* ud = [[NSUserDefaults alloc] initWithSuiteName:@"<group identifier>"];
[ud setObject:arr forKey:@"image_data"];
[ud synchronize];
и приложение клавиатуры получает данные изображения из NSUserDefaults
.
Правильно ли приложение-контейнер отправляет большие объемы данных клавиатурному приложению?
В особом случае, когда экземпляр NSUserDefaults
обращается к методу (objectForKey:) в приложении клавиатуры, происходит сбой приложения клавиатуры.
Особый случай:
если размер данных изображения в NSUserDefaults
больше примерно 30 МБ (не уверен), приложение клавиатуры дает сбой, а если размер меньше примерно 30 МБ, оно работает хорошо.
Существует ли максимальный размер NSUserDefaults?
я просто хочу лайкнуть это приложение.
я хочу знать, что я управляю данными большого размера в приложении клавиатуры.