2014-07-09 53 views
2

我這裏得到這個錯誤[__NSCFString objectForKey:]:無法識別的選擇發送到實例

+(CGFloat)heightForViewWithObject:(id)object inColumnWidth:(CGFloat)columnWidth { 

NSString *titleText = [object objectForKey:@"title"]; 
} 

對象應該是一個NSDictionary,而不是它的一個NSCFString,這是工作,我不知道我做了什麼,現在它沒有運行。我正在使用修改後的PSCollectionView

+0

你假定'obj'是一個'NSDictionary',但是你將它傳遞給一個'NSString'對象。啊你已經說過了。爲什麼發佈這個問題? – trojanfoe

+1

您使用的是返回JSON的Web服務嗎?如果你是,那麼你的服務器可能會遇到一個錯誤,而不是返回一個嵌套的NSDictionary形式的JSON,它會返回一個錯誤消息字符串。 – Zhang

+0

是的即時通訊使用返回JSON的Web服務。讓我檢查一下返回的內容。 – Elgert

回答

4

如果object有時是NSDictionary中,有時是NSString的,你可以檢查它和不同的方式處理它:

+(CGFloat)heightForViewWithObject:(id)object inColumnWidth:(CGFloat)columnWidth { 

    NSString *titleText = [object isKindOfClass:[NSDictionary class] ] ? [object objectForKey:@"title"] : object; 
} 

(BOOL)isKindOfClass:(類)ACLASS

返回一個布爾值,指示接收者是否是給定的類的實例或從該類繼承的任何類的實例。

+0

非常感謝,這將是有益的未來,但現在我必須找到我做了什麼,我的web服務返回一個字符串,而不是JSOn – Elgert

相關問題