-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
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 に答える
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 に答える