Foo *oFoo = [[[Foo alloc] init] autorelease];


这就是我在目标C中编程的方法,但是CLang错误检查器抱怨从未读取过初始值。但是oFoo是具有属性的对象。 oFoo本身没有单一价值。属性值很重要。

oFoo.PropertyA = 1;
oFoo.PropertyB = @"Hello, World."


我应该忽略这个吗?这值得解决吗?解决方法是什么,看到“初始值”在我的上下文中毫无意义?

最佳答案

通常这意味着:


您已经创建了一个变量。
您已为变量分配了一些值。本身或属性无关紧要。
您已经“重新创建”了该值或完成块(方法/针对每个方法/等)。


对于简单类型:

int a;
a = 2;
a = 3;


永远不会使用第一个值(2)。对象也会发生类似的事情,例如:

Foo *oFoo = [[[Foo alloc] init] autorelease];

oFoo.PropertyA = 1;
oFoo.PropertyB = @"Hello, World."

oFoo = [[[Foo alloc] init] autorelease];


在这里,第一个alloc-init块创建了一个被第二个alloc-init覆盖的值。错误表明了类似的东西。

代替第二个alloc-init块,我可以关闭方法的实现,这将是类似的。

07-27 13:40