默认初始化 const 类型的对象 'NSString *const __strong'?
Default initialization of an object of const type 'NSString *const __strong'?
当我的 Xcode 项目使用 .mm 文件编译时出现多个错误并且所有错误都是相同的 "Default initialization of an object of const type 'NSString *const __strong'"
并且它建议放置 =nil
。当我将 C++ 代码放入 .mm 时出现错误时,还包含一些 .cpp 文件和 .mm 没有出现问题。
我们都知道,如果我们输入 .mm,它将同时编译 Objective-C 和 C++。错误主要是 NSString *const object;
类型的初始化。我不想在那之前放 extern 或对其进行一些其他修改,因为那些 类 是由客户在岸团队中的其他人编写的,所以我不应该碰那些。
像
这样的声明
NSString *const object;
表示 object
是指向 NSString
对象的常量指针。请注意 constant pointer,即常量指针,不能修改。
这样的指针必须在定义时初始化,否则它将永远未初始化(如果在全局范围内定义则初始化为零)。您不能稍后分配给它来初始化它。
如果您在其他翻译 units/modules 中声明了此类变量,那么您 必须 使用 extern
关键字明确告诉编译器这是一个在其他地方存在(并初始化)的变量的声明。
当我的 Xcode 项目使用 .mm 文件编译时出现多个错误并且所有错误都是相同的 "Default initialization of an object of const type 'NSString *const __strong'"
并且它建议放置 =nil
。当我将 C++ 代码放入 .mm 时出现错误时,还包含一些 .cpp 文件和 .mm 没有出现问题。
我们都知道,如果我们输入 .mm,它将同时编译 Objective-C 和 C++。错误主要是 NSString *const object;
类型的初始化。我不想在那之前放 extern 或对其进行一些其他修改,因为那些 类 是由客户在岸团队中的其他人编写的,所以我不应该碰那些。
像
这样的声明NSString *const object;
表示 object
是指向 NSString
对象的常量指针。请注意 constant pointer,即常量指针,不能修改。
这样的指针必须在定义时初始化,否则它将永远未初始化(如果在全局范围内定义则初始化为零)。您不能稍后分配给它来初始化它。
如果您在其他翻译 units/modules 中声明了此类变量,那么您 必须 使用 extern
关键字明确告诉编译器这是一个在其他地方存在(并初始化)的变量的声明。