我想用這種方式創建一個Class對象: Class c = [Class classNamed:[NSString stringWithFormat:@「%sview」,[_shapeClass name]]];Objective C class problem
我的問題是這個錯誤消息:「錯誤:'Class'之前的預期表達式」。 你覺得呢?有什麼問題?感謝您的回覆。
編輯: 我想在開關盒中做到這一點。
我想用這種方式創建一個Class對象: Class c = [Class classNamed:[NSString stringWithFormat:@「%sview」,[_shapeClass name]]];Objective C class problem
我的問題是這個錯誤消息:「錯誤:'Class'之前的預期表達式」。 你覺得呢?有什麼問題?感謝您的回覆。
編輯: 我想在開關盒中做到這一點。
沒有名爲「Class」的類。 「類」是指向類對象的指針的類型。無論如何,存在NSBundle
一個classNamed:
方法,這可能是你正在尋找:
Class c = [[NSBundle mainBundle] classNamed:[NSString stringWithFormat:@"%sview", [_shapeClass name]]];
如果你知道類已經被加載,你也可以這樣說:
Class c = NSClassFromString([NSString stringWithFormat:@"%sview", [_shapeClass name]]);
問題是沒有Class這樣的類(並且作爲旁註,這個不存在的類也不響應classNamed:
)。
您是否想要創建一類或獲得參考到一個類是不是很清楚。如果是後者,則需要功能NSClassFromString()
。如果您想要在運行時動態創建類,則需要使用Objective-C runtime functions來創建類,並進行註冊並根據需要添加方法。
當[NSBundle mainBundle]中的類是否永遠不會被加載? – Chuck 2009-11-29 21:03:55