2012-10-10 80 views
10

的代碼簡單行:isAvailableForServiceType始終返回true?

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

問題是,我得到1兩個布爾值將。這是一個問題,因爲Twitter和Facebook都沒有設置帳戶。這是在模擬器上,所以想知道人們是否也經歷過這種情況也發生在設備上?

文檔說它只應返回true,如果服務可用並且至少設置了一個帳戶。但即使沒有帳戶設置,我也會變得真實。我想使用這些值來隱藏一些社交發布按鈕,所以希望這能起作用。

+0

你有沒有想過這個?它在iOS 6設備上無法正常工作。 – adamdehaven

回答

17

你在模擬器中運行過嗎?

看起來isAvailableForServiceType總是在模擬器中返回1

也許你可以用IOS6在ipad上測試它。

+0

是的,只有模擬器(雖然我沒有在模擬器上設置帳戶)。我會嘗試設備本身,只是令人失望的另一個模擬器/硬件差異。 –

+0

關於如何在模擬器上獲得預期行爲的任何想法? – Norswap

4

根據我的經驗,我可以確認這是iOS模擬器6.0中的一個錯誤。對於iOS模擬器上的任何服務類型,isAvailableForServiceType方法始終返回TRUE。

在運行當前iOS 6.0的實際設備上,它按預期工作。

0

我也可以在模擬器(Xcode 4.5.1,iOS 6.0)中確認它已損壞[即對於所有三種服務返回True] - 但它可以在設備上正常運行(運行iOS 4的iPhone 4S 6.0)。

0

isAvailableForServiceType返回true始終在iPhone和iPad模擬器。

同一段代碼在iOS 6 iPhone和iPad上工作正常。

1

你可以使用iOS 7.1來測試isAvailableForServiceType:,它也在模擬器上工作。

這裏我檢查

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

請檢查。