當我的Xcode項目與.mm文件編譯得到多個錯誤,並且所有的錯誤是相同的"Default initialization of an object of const type 'NSString *const __strong'"
,它建議把=nil
。一些.cpp文件也包含在內,而.mm當我把C++代碼放在.mm中時,這些錯誤並沒有出現。 我們都知道,如果我們把.mm它編譯Objective-C和C++。這些錯誤大多與NSString *const object;
種初始化有關。我不想在此之前放置外部或者對其進行一些其他修改,因爲這些類別由客戶端在岸團隊編寫,所以我不應該觸及這些類別。const類型'NSString * const __strong'的對象的默認初始化?
1
A
回答
3
的聲明如
NSString *const object;
說object
是常數指針NSString
對象。注意詞常數指針,即一個恆定的指針,並且不能被修改。
這樣的指針必須在定義的時候被初始化,否則它將永遠未初始化(或者如果在全局範圍中定義,則初始化爲零)。稍後您不能指定它來初始化它。
如果您有其他翻譯單元/模塊中聲明這樣的變量,那麼你就必須使用的extern
關鍵字明確地告訴編譯器,這是存在(並初始化)一個變量的聲明在別處。
相關問題
- 1. const void *對象初始化問題C++
- 2. const char *初始化
- 3. 無法初始化類型的成員子對象類型「爲const char [X]」
- 4. 如何初始化int * const * const?
- 5. C++ const數據初始化
- 6. C++ const結構初始化
- 7. 在一個類中初始化const
- 8. 不允許在類型「const int ** const」和「int **」之間初始化,爲什麼?
- 9. 初始化 'ABMultiValueRef *'(又名 'const的無效**')與類型 'CFTypeRef'
- 10. 初始化字符*類型爲const char的表達
- 11. 類型'cv :: Point2f'非const引用的無效初始化'
- 12. 錯誤:類型'cv :: Mat&'的非const引用無效初始化
- 13. 初始化命名空間中的const對象
- 14. 處理需要多行初始化的'const'對象
- 15. 默認初始化與默認構建值的初始化初始化
- 16. 初始化對象類型
- 17. 非const引用的初始化
- 18. 初始化結構的Const變量
- 19. 非const引用的無效初始化
- 20. C++默認初始化類型
- 21. Xcode「AppDelegate * const __strong'參數的不兼容類型」錯誤
- 22. 無法初始化類型爲'void *'的類型爲'void * const *'的變量
- 23. 如何初始化靜態const char *枚舉類型traits數組?
- 24. 編譯投訴const對象未初始化
- 25. 因此,初始化const對象時非常丟失
- 26. C++初始化對象與非const可變模板
- 27. 對象構造後初始化一個const成員變量
- 28. 值類型爲const char不能被用來初始化char類型的實體*
- 29. 對非const對象的const引用
- 30. const限定類型的默認初始化,沒有用戶提供的構造函數
NSString * const object;工作良好只出現在我編譯C++代碼時.mm @joachim pileborg –
@Codecracker我認爲「工作好」是一種誇張,因爲它永遠不會被賦予一個有效的值。 – molbdnilo
是的,當然,我會要求陸上團隊做進一步的修改,謝謝你的回覆@molbdnilo –