(我以前試過的SoundCloud Google網上論壇(停止?),並直接爲這我的SoundCloud接觸。聽說要在這裏發表的問題。)當我連接到公司FaceBook賬戶時,CocoaSoundCloudAPI崩潰。修復需要
只是想在iOS和我交手SoundCloudAPI發現一個令人討厭的錯誤。這可能是API中的一個錯誤,或者SoundCloud中的錯誤,或者(很可能)我做錯了什麼。 :)但最終結果將是一個破碎的應用程序,所以我很想知道這裏出了什麼問題。
我設置了一個新的iOS項目,遵循Tobias視頻和CocoaSoundCloudAPI自述文件。
使用SCShareViewController我連接到我爲我公司製作的測試SoundCloud帳戶。然後,我在應用程序中創建一個新的連接到測試公司FaceBook賬戶。我點擊安裝,並允許所有權限。
的應用程序,然後掛起,以終止應用程序由於未捕獲的異常上(在SCRecordingSaveViewController.m)行「NSInvalidArgumentException」的 :
cell.textLabel.text = [connection objectForKey:@"display_name"];
每當我現在運行的應用程序,它崩潰上這一行。
當我轉儲出連接NSDictionary的內容時,它看起來像self.availableConnections中列出了兩個連接,這是我爲我公司FaceBook頁面提供的display_name的一個「facebook_page」連接。但也有第二個「facebook_profile」與空display_name。這是導致API崩潰的第二個連接。據推測,API開發人員從不期待一個空的display_name,但我也不明白爲什麼它會列出兩個FaceBook連接。
如果我進一步調查「display_name」的值,那麼Xcode告訴我「變量不是CFString」,事實上,如果我查看類,那麼它不是。
在瀏覽器中進入SoundCloud,我可以列出連接,並顯示其中兩個。一位與我公司FB帳戶的名稱,而第二個:
「http://facebook.com/profile.php?id= * ** * *是你的主要的Facebook用戶帳戶「
如果我斷開這兩個連接,我可以再次使用SoundCloudAPI而不會崩潰。
然後我創建了新的個人測試SoundCloud和FaceBook賬戶,並在應用程序中再次做了同樣的事情。這一次它沒有崩潰(實際上效果很好),並且連接NSDictionary有一個連接「facebook_profile」和一個有效的display_name。通過瀏覽器的SoundCloud也只列出一個連接。
請注意,這也發生在CocoaSoundCloudDemo沒有代碼更改。
我也可以破解與周圍的代碼,以避免連接到我公司帳戶時崩潰: -
// cell.textLabel.text = [connection objectForKey:@"display_name"];
id displayName = [connection objectForKey:@"display_name"];
if ([displayName isKindOfClass:[NSString class]])
{
cell.textLabel.text = (NSString*)displayName;
}
......這給了我兩列FB連接,但第二個是空白。通過一些努力,我可以在代碼中計算出他們在做什麼,並且如果display_name無效,不會顯示一行,但顯然我寧願不必這樣做並使用標準API代碼。
SO,長話短說: -
1)的SoundCloud是否允許你連接到公司的Facebook帳戶?您需要在FaceBook帳戶上進行一些特殊設置,以便SoundCloud只能看到「Facebook_profile」而不是「Facebook_page」?問題似乎在SoundCloud本身,而不是iOS API,但它是API崩潰。
2)從我的測試應用程序中,如果用戶試圖將SoundCloud帳戶連接到公司的FaceBook帳戶(至少,我用我的最小設置),則SoundCloudAPI將崩潰並出現異常,我的整個應用程序將繼續崩潰,直到用戶使用瀏覽器登錄到SoundCloud並手動刪除這兩個連接。當然這不是好事,但我已經爲Google搜索了一個類似的問題,但沒有發現任何東西。沒有找到解決辦法,我不能在我的應用程序中使用完整的API,因爲我擔心我的用戶會遇到同樣的崩潰問題,並且可能不得不創建一個自定義用戶界面,以避免需要共享FaceBook等。
嗨,這是來自SoundCloud iOS團隊的Tobias。你應該做什麼(據我瞭解你的描述),應該工作。我們會仔細研究一下,但這可能需要幾天的時間。 – 2012-04-24 12:26:59
沒問題,我對此並不急。如果需要,我可以提供更多信息,例如SoundCloud站點的屏幕截圖以及兩個FB連接,或API中連接列表中返回的數據。您應該可以通過創建一個新的FB賬戶,選擇一個公司而不是個人賬戶,然後使用CocoaSoundCloudDemo連接到FB來重現錯誤。這就是我所做的一切。 – 2012-04-25 08:53:21
只是想知道你是否在這個方面取得了進展?即使這種進步只是你不能重複的問題。我不能將SoundCloud支持添加到我的應用程序,直到我知道它不會導致我的用戶問題。 – 2012-05-09 08:49:49