2012-04-21 64 views
0

(我以前試過的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等。

+0

嗨,這是來自SoundCloud iOS團隊的Tobias。你應該做什麼(據我瞭解你的描述),應該工作。我們會仔細研究一下,但這可能需要幾天的時間。 – 2012-04-24 12:26:59

+0

沒問題,我對此並不急。如果需要,我可以提供更多信息,例如SoundCloud站點的屏幕截圖以及兩個FB連接,或API中連接列表中返回的數據。您應該可以通過創建一個新的FB賬戶,選擇一個公司而不是個人賬戶,然後使用CocoaSoundCloudDemo連接到FB來重現錯誤。這就是我所做的一切。 – 2012-04-25 08:53:21

+0

只是想知道你是否在這個方面取得了進展?即使這種進步只是你不能重複的問題。我不能將SoundCloud支持添加到我的應用程序,直到我知道它不會導致我的用戶問題。 – 2012-05-09 08:49:49

回答

1

對不起,我們還沒有回來給你。 從我們的SDK用戶那裏收到反饋總是很好,是的,我們應該檢查 對nil的值,並相應地處理這種情況。

但是,我調查了你所描述的情況,實際上它對我來說完美無缺地工作了 。我的 在我的SoundCloud配置文件設置中將我的SoundCloud帳戶與新的Facebook頁面連接起來後,Facebook的兩行已正確顯示。

您還可以查看哪些帳戶運行

curl "https://api.soundcloud.com/me/connections.json?oauth_token=<YOUR_OAUTH_TOKEN> 

在我的情況下連接,我收到這樣的事情

{ 
"kind": "connection", 
"id": 12345678, 
"created_at": "2013/01/10 15:55:20 +0000", 
"display_name": "Testpage", 
"post_publish": true, 
"post_favorite": true, 
"type": "facebook_page", 
"service": "facebook_page", 
"uri": "https://api.soundcloud.com/connections/12345678" 
}, 
{ 
"kind": "connection", 
"id": 12345679, 
"created_at": "2013/01/10 11:07:56 +0000", 
"display_name": "Rob", 
"post_publish": true, 
"post_favorite": true, 
"type": "facebook_profile", 
"service": "facebook_profile", 
"uri": "https://api.soundcloud.com/connections/12345679" 
} 

因此,儘管通過SDK上傳一個新的聲音,我有兩個的Facebook在 的行中共享部分。你還在遇到這個問題嗎?

我們將很快發佈iOS SDK的更新,敬請期待並感謝您的反饋。