2011-12-23 56 views

回答

6

功能:

char* inboxPath (void); 

回報char*-[NSString UTF8String]回報const char*。您要刪除的限定符是const。爲了解決這個問題,你應該聲明你的函數:

const char* inboxPath (void); 

變異不變(const)數據是引進未定義行爲的一個常用的方法,所以你一定要避免摔落const預選賽。

如果您需要一個可變的char緩衝區,請複製由-[NSString UTF8String]返回的utf8字符串。

+1

注意:「返回的C字符串是一個指向字符串對象內部結構的指針,該對象的生命週期可能比字符串對象的生命週期短,並且一定不會有更長的生命週期。因此,如果需要將C字符串存儲在調用此方法的內存環境之外,則應複製C字符串。「 - [NSString](https://developer.apple.com/library/mac/documentation/Cocoa/參考/基金/班/ NSString_Class /參考/ NSString.html#// apple_ref/DOC/UID/20000154-CJBHCCED) – 2014-06-30 09:16:41

3

限定符添加到返回值類型的函數:

const char *inboxPath(...) 

UTF8String返回const char *,所以你可能想在你的函數返回一個類型相同。

相關問題