gpt4 book ai didi

iphone - MyObject对象是否可能;包含垃圾?

转载 作者:行者123 更新时间:2023-12-01 17:43:52 25 4
gpt4 key购买 nike

在某些情况下,如果未将本地CGFloat显式初始化为0,则会导致该变量持有垃圾:

-(void)foo
{
CGFloat aFloat;
NSLog(@"float:%f", aFloat);
aFloat = 70;
}

[self foo];
[self foo];

输出:
float:0
float:70

因此,它实际上应该两次都输出0,但是由于我没有将float显式初始化为0,因此第二次包含了垃圾。我的问题是,这也适用于对象吗?这两个选项之间的局部变量是否有所不同:
1. NSObject *object;
2. NSObject *object = nil;

最佳答案

如果指针是一个ivar,则指针最初为nil。 (如果您在类的@interface部分中声明了它,则它是一个ivar。)如果指针是局部变量(您在方法中声明了它),它将包含垃圾。最佳做法是始终立即分配某些内容。

更新:如omz的注释所指出的,如果您使用的是ARC,则如果指针是局部变量,也将被删除。

关于iphone - MyObject对象是否可能;包含垃圾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11822795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com