gpt4 book ai didi

ios - 如果在不支持facebook的国家使用SLServiceTypeFacebook,SLComposeViewController会导致崩溃吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:04 27 4
gpt4 key购买 nike

我正在使用 SLComposeViewController 在系统级别上呈现一个非常简单的分享到 facebook 提示。如果设备未登录,我希望设备通过设置处理登录,所以我不检查 +isAvailableForServiceType 并继续显示 SLComposeViewController。

我注意到,如果我尝试使用我的设备上没有的服务类型(例如 SLServiceTypeTencentWeibo),它会导致我的程序崩溃。这是否会在设备上没有 facebook 的国家/地区发生类似情况,就像我的设备上没有腾讯微博一样?

我遇到的崩溃......

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target

我正在像这样呈现 SLComposeViewController...

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTencentWeibo];
[controller addURL:[NSURL URLWithString:@"http://www.example.com"]];
[controller addImage:sharedImage];
NSString *postString = [NSString stringWithFormat:@"A cool sharing string!"];
[controller setInitialText:postString];
[self presentViewController:controller animated:YES completion:nil];

最佳答案

我想会的。解决此问题的最佳方法是避免检查 isAvailableForServiceType:,而是检查实例化 Controller 是否为 nil。这样,在大多数情况下,您仍然可以选择转到“设置”来创建帐户,并且不会在无法创建帐户时出现随机崩溃。

下面是我的新浪微博代码(警告 View 中的文本等同于 Apple 正常显示的文本,只是没有进入“设置”的选项):

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
[controller setInitialText:@"Some random text"];
[controller addImage:_randomImage];

if (!controller) {
[[[UIAlertView alloc] initWithTitle:@"No Sina Weibo Accounts" message:@"There are no Shina Weibo accounts configured. You can add or create a Sina Weibo account in Settings." delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil] show];
return;
}

[self presentViewController:controller animated:YES completion:nil];

关于ios - 如果在不支持facebook的国家使用SLServiceTypeFacebook,SLComposeViewController会导致崩溃吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24189557/

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