检查是否在循环内创建了对象

时间:2013-01-31 11:16:08

标签: ios objective-c loops

在Objective-C中是否有任何方法可以检查是否在循环内创建了一个Object(同时,for)?

提前致谢。

3 个答案:

答案 0 :(得分:0)

NSString *obj = nil;

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

}

//check obj is nil or not

if(nil == obj)
{
// obj not created
}

答案 1 :(得分: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的答案,那么这里的范围很重要

答案 2 :(得分: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;
}