我无法让社交框架在我的ios设备上正常运行,但它在iOS模拟器中完美运行但在我的iPad上无法运行,任何人都可以建议我可能出错的地方。提前谢谢。
- (IBAction)sharefb:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
mySLComposerSheet = [[SLComposeViewController alloc] init];
mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[mySLComposerSheet setInitialText:@"Share this app with your friends"];
[mySLComposerSheet addImage: [UIImage imageNamed:@"icon2.png"]];
[self presentViewController: mySLComposerSheet animated:
YES completion:nil];
}
[mySLComposerSheet setCompletionHandler:^
(SLComposeViewControllerResult result) {
NSString *output = [[NSString alloc] init];
switch (result) {
case SLComposeViewControllerResultCancelled:
output = @"Post Cancelled";
break;
case SLComposeViewControllerResultDone:
output = @"Posted successfully";
break;
default:
break;
}
}];
答案 0 :(得分:2)
我只是将您的代码复制/粘贴到一个空白项目中并成功地在我的iPad上运行,所以我不确定问题是什么,但这里有一些你可以尝试的事情。
首先,在代码中使用这两行:
mySLComposerSheet = [[SLComposeViewController alloc] init];
mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
在composeViewControllerForServiceType
之前调用alloc / init是不必要的,也是不明智的,因为presentViewController
已经返回了一个SLComposeViewController对象。省略这两行中的第一行可以解决问题。
其次,您确定项目中存在“icon2.png”吗?这不应该导致问题,但是发生了更疯狂的事情。
第三,也不太可能,但由于你的间距和换行位置,你可能会因为[self presentViewController:mySLComposerSheet animated:YES completion:nil];
的参数而产生一些奇怪的隐形。尝试重写该行,如下所示:
NSString *output
网站注意,您的{{1}}正在创建内存泄漏,除非它用于您未在代码中包含的其他内容。这完全取决于你原来的帖子,它实际上没有指明问题。如果你可以更具体,我可能会更有帮助。