我有一個類主題和集團這兩者有一個叫做「名」的變量,所以我想這兩個如果語句合併成一條:動態目標C結合
if ([((RKMappableObjectTableItem *) _item).object isKindOfClass:[Group class]]){
Group * group = (Group *)(((RKMappableObjectTableItem *) self.object).object);
//blah
} else if ([((RKMappableObjectTableItem *) _item).object isKindOfClass:[Topic class]]){
Topic * topic = (Topic *)(((RKMappableObjectTableItem *) self.object).object);
//blah
}
我試圖
id group = (((RKMappableObjectTableItem *) self.object).object);
但是當我試圖group.name,它給了我:在ID類型的對象沒有找到
屬性名
唉..的另一個受害者「點語法是最相同的,消息發送,除非,當-IT-isn't」 ...... –
有針對性的設計決定仔細考慮具有很大程度上幫助了代碼質量在這種情況下,真正的問題是缺少抽象基類,或者不太適合使用協議。依靠(id)或類型轉換導致易碎,錯誤的代碼。真正的問題是不斷需要使用屬性的點語法,反之亦然。 – bbum
相信我,如果我可以通過抽象基類來做到這一點..我會這樣做,而不是像這樣髒。這是一個很長的故事,爲什麼我不能在這裏抽象,與我正在使用的框架有關 – adit