iOS集合类深拷贝

iOS集合类默认是浅拷贝,那如何深拷贝呢? 1.集合类的浅拷贝 1 2 NSMutableArray *newNames = [[NSMutableArray alloc] initWithArray:names]; 2.集合类的深拷贝 1 2 NSMutableArray *newNames = [[NSMutableArray alloc] initWithArray:names copyItems:YES]; 3.特殊场景下的集合类真正的

Objective-C-Clang预编译宏

一.编译器内置宏

针对Objective-C-,Clang编译器内置哪些宏呢?

像平时看到的

__BLOCK__:是否支持block?

__unsafe_unretained:LLVM 编译器 3.0版本之后,可以在不使用ARC下,可用.

__weak:LLVM 编译器 3.0版本之后,可以在不使用ARC下,可用.

__strong:LLVM 编译器 3.0版本之后,可以在不使用ARC下,可用.

__block:块变量。

等.

二.clang查看编译器内置宏

那Clang编译器支持的所有宏定义可通过

clang -dM -E - < /dev/null

命令查看

block关键字使用限制

__block变量有两个限制 1.不能是可变长度的数组。 2.不能是包含C99可变长度数组的结构体。 1.可变数组 C99中的可变长数组(varia