require与require_noerr是定义在AssertMacros.h中的宏,在xcode9中,这个文件发生了改变,并且苹果在文件中解释了原因
即从前Mac OS X定义了大量没有__前缀的宏,这些宏可能与用户代码中,包括Boost和C++标准库中类似的函数和宏发生冲突,因此拥有高版本Mac OS的Sierra和ios11要求用户迁移到定义的新宏。
require与require_noerr是定义在AssertMacros.h中的宏,在xcode9中,这个文件发生了改变,并且苹果在文件中解释了原因
即从前Mac OS X定义了大量没有__前缀的宏,这些宏可能与用户代码中,包括Boost和C++标准库中类似的函数和宏发生冲突,因此拥有高版本Mac OS的Sierra和ios11要求用户迁移到定义的新宏。