Does being technically correct matter? 技术正确重要吗?

如果你曾经看过我其它的书,应该知道我一直坚信,技术层面的正确最重要的。但我不确定这句话是否适用于 ARC 修饰符。所谓「ARC 修饰符」就是用在用在类名称前面的那些东西,比如这个:

__weak NSString *name = @"Bilbo Baggins";

但是这本书写到现在,我们的代码都是用这种格式来写的:

NSString * __weak name = @"Bilbo Baggins";

这两种写法都是可以的,但是就语法的规范性而言,第二种是官方认定更正确的写法。苹果是这样解释两种写法皆可的:两种方式在计数层面都是正确的,编译器不在意这个。这也就导致了你可能会看到更复杂的写法:

NSError * _Nullable __autoreleasing * _Nullable

感觉这里指针可为空,指向指针的指针也可以为空,运气好的话就自动释放了。但是实际上,这和之前 stringWithContentsOfFile 使用 NSError 参数的例子是一样的。所以这个代码,居然是正常的。( ・_・)

而且……根据经验……

__weak NSString *see NSString * __weak 常见多了…… ( ・_・)

不要太惊讶哈,一切皆有可能…… ( ・_・)

results matching ""

    No results matching ""