当我的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 –