我有一个项目,其中包含一些使用ARC的文件,有些则没有.那些没有禁用ARC的编译器标志的那些.这很好.
我还想确保我的库编译LLVM-GCC和LLVM编译器.
我有这样的房产:
@property (strong, nonatomic) NSString *foo;
Run Code Online (Sandbox Code Playgroud)
但是,当我在LLVM-GCC中编译时,我得到:
"在'强'之前预期属性属性"
如果我改变强势保留,它编译好.Strong在LLVM编译器中也可以正常工作.
我错过了什么?保留不是强有力的代名词吗?
我有一个 vanilla Express 应用程序,它的 package.json 看起来像这样:
{
"name": "express-app",
"version": "1.0.0",
"main": "app.js",
"dependencies": {
...
},
"devDependencies": {
...
},
"scripts": {
...
},
}Run Code Online (Sandbox Code Playgroud)
我想在 express 应用程序之外编写一个脚本,用于从 express 应用程序导入模块。该模块驻留在./src/model/Example.js该模块中还导入了各种其他模块。
该脚本位于./scripts/test.mjs并执行:
import Example from '../src/models/Example.js';
但是,我遇到了第一个从Example.js以下导入的问题:
SyntaxError: Cannot use import statement outside a module
Run Code Online (Sandbox Code Playgroud)
我如何构建它以便脚本可以正确导入模块?
假设我有这样一个强大的财产:
@interface Foo
@property (strong, nonatomic) NSArray *myArray;
@end
Run Code Online (Sandbox Code Playgroud)
并且,在我的初始化程序中,我设置myArray如下:
myArray = [NSArray array];
Run Code Online (Sandbox Code Playgroud)
这样安全吗?ARC会为我保管myArray吗?
我问的原因是我有一个项目,其中myArray 在这种情况下没有被正确保留,并且我得到了一个糟糕的内存访问.
但是,如果我使用
myArray = [[NSArray alloc] init];
Run Code Online (Sandbox Code Playgroud)
那一切都很好.