isAvailableForServiceType总是返回true?

时间:2012-10-10 04:25:20

标签: iphone ios ios6 slcomposeviewcontroller

简单的代码行:

NSLog(@"Checking on Facebook: %d -- Checking on Twitter: %d",[SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook], [SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]);

问题是我两个BOOL都得到1。这是一个问题,因为Twitter和Facebook都没有设置帐户。这是在模拟器上,所以想知道人们是否经历过这种情况也会在设备上发生?

文档说它应该只在服务可用且至少设置了一个帐户时才返回true。但即使没有账户设置,我也会变成现实。我想使用这些值隐藏一些社交帖子按钮,以便这样做。

5 个答案:

答案 0 :(得分:17)

你在模拟器中运行了吗?

似乎isAvailableForServiceType始终在模拟器中返回1

也许你可以用IOS6在ipad上测试它。

答案 1 :(得分:4)

根据我的经验,我可以确认这是iOS模拟器6.0中的一个错误。对于iOS模拟器上的任何服务类型,isAvailableForServiceType方法始终返回TRUE。

在运行当前iOS 6.0的实际设备上,它正在按预期工作。

答案 2 :(得分:1)

您可以使用iOS 7.1测试isAvailableForServiceType:,它也可以使用模拟器。

这里我检查了什么

NSLog(@"Facebook Enabled : %d",[SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook];

请检查一下。

答案 3 :(得分:0)

我还可以确认它在模拟器(Xcode 4.5.1,iOS 6.0)中已经损坏[即,为所有三种服务返回True] - 但它可以在设备上正常运行(iPhone 4S,运行iOS 6.0) )。

答案 4 :(得分:0)

isAvailableForServiceType始终在iPhone和iPad模拟器中返回true

同样的代码在iOS 6 iPhone和iPad上运行良好。