gpt4 book ai didi

ios - 共享扩展程序未出现在能够在 iPhone 上共享照片的应用程序列表中

转载 作者:可可西里 更新时间:2023-11-01 06:20:00 25 4
gpt4 key购买 nike

我正在尝试创建共享应用程序扩展并按照此来源的教程进行操作:

http://www.technetexperts.com/mobile/share-extension-in-ios-application-overview-with-example/

我正在使用 XCode 8.0 (8A218a) 在模拟器上它按预期工作。在装有 iOS 9.3.3 的 iPhone 5s 上。

我先安装容器应用程序,然后在 XCode 询问“选择要运行的应用程序”时通过选择“照片”应用程序来运行扩展程序。

现在,当我在扩展程序运行时打开照片时,会出现以下错误:

MobileSlideShow[3500:589624] *** error reading settings archive file: <ISRootSettings:
/var/mobile/Documents/com.apple.mobileslideshow.settings/ISRootSettings_10.plist>

现在,当我点击共享按钮时,我的容器应用程序不会出现在能够共享图片的应用程序列表中。

编辑:我正在分享一些代码:

ShareViewController.m

@implementation ShareViewController
- (BOOL)isContentValid {
// Do validation of contentText and/or NSExtensionContext attachments here
return YES;
}

- (void)didSelectPost {

for (NSItemProvider* itemProvider in ((NSExtensionItem*)self.extensionContext.inputItems[0]).attachments ) {

if([itemProvider hasItemConformingToTypeIdentifier:@"public.jpeg"]) {
NSLog(@"itemprovider = %@", itemProvider);

[itemProvider loadItemForTypeIdentifier:@"public.jpeg" options:nil completionHandler: ^(id<NSSecureCoding> item, NSError *error) {

NSData *imgData;
if([(NSObject*)item isKindOfClass:[NSURL class]]) {
imgData = [NSData dataWithContentsOfURL:(NSURL*)item];
}
if([(NSObject*)item isKindOfClass:[UIImage class]]) {
imgData = UIImagePNGRepresentation((UIImage*)item);
}

NSDictionary *dict = @{
@"imgData" : imgData,
@"name" : self.contentText
};
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.iosApp.testSharing"];
[defaults setObject:dict forKey:@"img"];
[defaults synchronize];
}];
}
}
}

@end

ViewController.m

@implementation ViewController

- (void)viewWillAppear:(BOOL)animated {

[super viewWillAppear:animated];
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.iosApp.testSharing"];
NSDictionary *dict = [defaults valueForKey:@"img"];

if (dict) {

NSData *imgData = [dict valueForKey:@"imgData"];
UIImage *image = [UIImage imageWithData:imgData];
[_shareImageView setImage:image];
_shareImageNameLabel.text = [dict valueForKey:@"name"];
[defaults removeObjectForKey:@"img"];
}

}

@end

最佳答案

您必须更改项目的共享扩展表单目标的部署目标,然后它才能开始工作。

关于ios - 共享扩展程序未出现在能够在 iPhone 上共享照片的应用程序列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42269842/

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