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;
}
NSString *obj = nil;
while()
{
//Create object
obj = [[NSString alloc] init];
}
//check obj is nil or not
if(nil == obj)
{
// obj not created
}
はい、正確な回答を得るために、オブジェクトが何であり、いつ宣言されたかを教えていただけますか? あなたが持っているコードを投稿できますか?
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の回答を使用しますが、ここで重要なのはスコープです