我对for (int i = 0; i < num - 1; i++) {
String thisLast = "";
if (sentence[i].compareTo(sentence[i + 1]) > 0) {
thisLast = sentence[i];
count++;
} else if (sentence[i].compareTo(sentence[i + 1]) < 0) {
thisLast = sentence[i + 1];
count++;
}
if (thisLast.compareTo(last) > 0)
last = thisLast;
}
有疑问。
容器应用有很多图片。(前&gt; 100张图片,总共100MB)
和容器应用已使用Keyboard Extension
保存。
喜欢这样:
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
实例访问键盘应用程序中的方法(objectForKey :)时,键盘应用程序崩溃。
特殊情况是:
如果NSUserDefaults
中的图像数据大小大于30MB(不确定),键盘应用程序崩溃,如果大小小于30MB,则效果很好。
是否存在NSUserDefaults的最大大小限制?
我只想要this app。
我想知道我在键盘应用程序中控制大尺寸数据。
答案 0 :(得分:1)
1)首先,您必须在共享文档目录中写入图像。
- (NSString *)getSharedLocationPath:(NSString *)appGroupName {
NSURL *groupContainerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.yourGroupName"];
return [groupContainerURL relativePath];
}
2)将图像写入上面的共享目录。
NSString *path = [[self getSharedLocationPath:@"group.yourGroupName"] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",images]];
//Here fileData is your Image data.
[fileData writeToFile:path atomically:YES];
3)正确地获得与上面相同的键盘扩展类路径。
- (NSString *)getSharedLocationPath:(NSString *)appGroupName {
NSURL *groupContainerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.yourGroupName"];
return [groupContainerURL relativePath];
}
//Here get content of directory from shared document directory.
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[self getSharedLocationPath:@"group.yourGroupName"] error:NULL];
for (Count = 0; Count < (int)[directoryContent count]; Count++)
{
NSLog(@"File %d: %@", (Count + 1), [directoryContent objectAtIndex:Count]);
}
//Now you get your images from app shared directory.