我想使用核心圖形上下文編寫文本。我可以第一次做到這一點,沒問題,但第二次崩潰我的iPhone應用程序。下面的代碼片段:NSString到C風格的字符數組崩潰第二次調用drawRect
NSString *name = [MyClass getName];
const char *cname = [name UTF8String];
[self drawText:context text:cname];
MyClass
和drawText
是自定義的類/方法,但你的想法。這三行生活在drawRect:
第一次執行drawRect:
時,我看到了預期的文字。然而,在任何刷新的drawRect:,該行:
const char *cname = [name UTF8String];
導致我的應用程序與神祕,"GDB: Program loaded."
狀態消息崩潰。
即使使用getCString:
方法,我也會得到類似的回覆。我想我可能會錯過對NSString char數組轉換的基本理解。
我對這篇文章太陌生了,所以我無法評價響應者。但是,他們是正確的,因爲我正在取消引用已發佈的對象。我讓NSString成爲一個全局變量(這對於每個drawRect重新分配它都沒有問題:無論如何效率似乎都很低)。基本上我最終刪除了第一行,一切按預期工作。謝謝! – 2009-05-26 22:48:28