isAvailableForServiceType 总是返回 true 吗?

10

简单的代码行:

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

问题在于我获取的两个BOOL变量都返回了1。这是一个问题,因为Twitter和Facebook都没有设置账户。我在模拟器上测试,想知道其他人是否也遇到了这个问题,是否也会在实际设备上发生?

文档中说只有在服务可用且至少设置了一个账户时才会返回true。但即使没有设置账户,我也能获得true。我想将这些值用于隐藏一些社交发布按钮,所以希望它能正常工作。


你解决这个问题了吗?在我的iOS 6设备上也无法正常工作。 - adamdehaven
5个回答

17

你在模拟器上运行了吗?

似乎在模拟器中,isAvailableForServiceType 总是返回 1

或许你可以在装有 iOS6 的 iPad 上进行测试。


是的,仅模拟器(虽然我在模拟器上没有设置帐户)。我会尝试在设备本身上运行,只是有另一个模拟器/硬件差异有点让人失望。 - Ryan Garcia
有任何想法如何在模拟器上获得期望的行为? - Norswap

4

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

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


1
你可以在iOS 7.1上测试isAvailableForServiceType:,它在模拟器上也能工作。
以下是我检查的内容:
NSLog(@"Facebook Enabled : %d",[SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook];

请检查这个。

0

isAvailableForServiceType 在 iPhone 和 iPad 模拟器中总是返回 true

在 iOS 6 的 iPhone 和 iPad 上,同样的代码可以很好地工作。


0
我可以确认在模拟器(Xcode 4.5.1,iOS 6.0)中出现了问题(即对于所有三个服务都返回True),但在设备上运行正常(iPhone 4S,运行iOS 6.0)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接