gpt4 book ai didi

iOS 键盘扩展(应用组)

转载 作者:行者123 更新时间:2023-11-29 11:49:27 25 4
gpt4 key购买 nike

我有一个关于 Keyboard Extension 的问题。

容器应用有很多图片。(例如 > 100 张图片,总计 100MB)并且容器应用已使用 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 中的图像数据大小大于大约 30MB(不确定),键盘应用程序会崩溃,如果大小小于大约 30MB,它工作正常。

NSUserDefaults 是否有最大大小限制?

我只想喜欢this app .

我想知道我在键盘应用程序中控制大量数据。

最佳答案

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.

关于iOS 键盘扩展(应用组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41828150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com