-1

Objective-C 中有什么方法可以检查是否在循环中创建了一个对象(while,for)?

提前致谢。

4

3 回答 3

0

我认为您无法知道它是否是在循环中创建的,但是由于您正在编写将在循环中创建对象的代码,因此您可以调用特殊的 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;
}
于 2013-01-31T13:23:13.310 回答
0

是的,但要获得准确的答案,您能否告诉我们该对象是什么以及何时声明?你可以发布你的代码吗?

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 的答案,但这里重要的是范围

于 2013-01-31T11:27:31.440 回答
0
NSString *obj = nil;

while()
 {
 //Create object
   obj = [[NSString alloc] init];

}

//check obj is nil or not

if(nil == obj)
{
// obj not created
}
于 2013-01-31T11:22:36.673 回答