Objective-C 中有什么方法可以检查是否在循环中创建了一个对象(while,for)?
提前致谢。
我认为您无法知道它是否是在循环中创建的,但是由于您正在编写将在循环中创建对象的代码,因此您可以调用特殊的 init 方法...
SpecialClass * obj = [[SpecialClass alloc] init];
while (isTrue)
{
SpecialClass * loopObj = [[SpecialClass alloc] initCreatedByLoop];
// Do whats needed
}
并在您的 SpecialClass 中创建一个特定的初始化程序...
@implementation SpecialClass
-(id)initCreatedByLoop {
self = [super init];
if (self) {
// What ever you want to do
}
return self;
}
是的,但要获得准确的答案,您能否告诉我们该对象是什么以及何时声明?你可以发布你的代码吗?
int x=0;
while (x<3) {
NSString *i = @"hello world";
x++;
}
NSLog(@"i is %@", i) // i is only declared inside the while loop so not available here
或者,
int x=0;
NSString *i;
while (x<3) {
i = @"hello world";
x++;
}
NSLog(@"i is %@", i); // i is declared beforehand outside the while loop so is available here
如果您需要对它是否已创建采取行动,请使用 Anil 的答案,但这里重要的是范围
NSString *obj = nil;
while()
{
//Create object
obj = [[NSString alloc] init];
}
//check obj is nil or not
if(nil == obj)
{
// obj not created
}