一,關(guān)于NSClassFormString:
NSClassFromString是一個很有用的東西,尤其在進行iPhone toolchain的開發(fā)上。
正常來說,
id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];
和
id myObj = [[MySpecialClass alloc] init];
是一樣的。但是,如果你的程序中并不存在MySpecialClass這個類,下面的寫法會出錯,而上面的寫法只是返回一個空對象而已。
因此,在某些情況下,可以使用NSClassFromString來進行你不確定的類的初始化。
比如在iPhone中,NSTask可能就會出現(xiàn)這種情況,所以在你需要使用NSTask時,最好使用:
[[NSClassFromString(@"NSTask") .....]]
而不要直接使用[NSTask ...]這種寫法。
NSClassFromString的好處是:
1 弱化連接,因此并不會把沒有的Framework也link到程序中。
2 不需要使用import,因為類是動態(tài)加載的,只要存在就可以加載。因此如果你的toolchain中沒有某個類的頭文件定義,而你確信這個類是可以用的,那么也可以用這種方法。
例如:Classclass =NSClassFromString(className);//NSClassFromString在某些特殊的情況下,可以進行一些你不確定的類,的定義。
if(class) {
UIViewController*ctrl = class.new;
ctrl.title=_titles[indexPath.row];
[self.navigationControllerpushViewController:ctrlanimated:YES];
二、關(guān)于(lldb) po text
error: Couldn't materialize: couldn't get the value of variable text: variable not available
error: errored out in DoExecute, couldn't PrepareToExecuteJITExpression
解決方案
其實這是由于你工程編譯策略的問題,需要將 release 下的變異策略修改:
Project > App target > Build Settings > Optimization Level > Release 將選項 fastest,Smallest[-Os]改為 None .
在 debug 下不會發(fā)生此錯誤,是因為 debug 下的變異策略默認為 None
三、關(guān)于編譯錯誤:Apple Mach-O Linker Error,不知道大家有沒有試過,編譯的時候,特別是手動拖拽了第三方的東西的時候,一編譯就出現(xiàn)這種情況

這種錯誤,很奇怪,就是你點擊的話,對應(yīng)的錯誤位置不會給你點出來。那么,這種情況就應(yīng)該是Link Binary With Libraries里面沒有添加相應(yīng)的系統(tǒng)依賴庫,所以,添加上去就解決這種問題啦。
