【发布时间】:2013-01-03 18:56:07
【问题描述】:
我正在尝试在 iOS6 中实现新的社交框架,并让它工作,除了 2 个奇怪的问题。如果我启用了我感兴趣的服务(比如...FaceBook),那么它就可以正常工作。但是,如果从设置面板中删除帐户(假设是 FaceBook,以保持一致),那么我会在模拟器和设备中出现不同且令人沮丧的行为。
这是我的视图控制器中的相关代码:
//Method for FaceBook
- (IBAction)doFacebook:(id)sender{
//check to see if facebook account exists
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
// Create the view controller defined in the .h file
fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// make the default string
NSString *FBString= [NSString
stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
[fb setInitialText:FBString];
// show the controller
[self presentViewController:fb animated:YES completion:nil];
}
}
这是启动上述方法时的奇怪行为:
在 模拟器(版本 6.0 (358.4))中,我收到一个对话框,通知我没有使用“设置”和“取消”按钮设置任何 Facebook 帐户。只需点击“设置”关闭对话框,但没有将我带到设置面板。
在运行 6.01 的 iPhone 4s 上,点击触发该方法的按钮会导致...什么也没有。换句话说,我没有收到通知我必须设置 Facebook 帐户的对话框。
提前感谢您的帮助。
好的...解决方法如下:
这是我的新实现,基于 user1734802 的有用评论。
//Method for FaceBook
- (IBAction)doFacebook:(id)sender{
// Create the view controller defined in the .h file
fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// make the default string
NSString *FBString= [NSString
stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
[fb setInitialText:FBString];
// show the controller
[self presentViewController:fb animated:YES completion:nil];
}
我希望在某个时候
[SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
真正正常工作(触发自动对话框,并带您进入设置),所以我实际上只是在我的代码中将其注释掉。
【问题讨论】:
-
对我来说闻起来像个虫子。不适用于任何 SLServiceType 的设备,仅适用于 Twitter 和微博的模拟器。
-
我开始相信这也是一个错误。我想知道最好的行动方案是什么?弹出我自己的对话框,建议人们设置帐户(因为我显然无法将它们发送到设置)?
-
这可能是最好的方法,除此之外,如果您最终无法获得此工作文件,请通过 Apple 向bugreporter.apple.com 提交错误报告
标签: facebook ios6 social-framework