2010-10-08 20 views

cevap

3

varsayılan uygulama: forUndefinedKey: Hedef sınıfının yöntem, böyle bir şey yapmak mümkün istiyorum zam NSUndefinedKeyException. Bir try/catch bloğundaki girişimi kuşatırsınız:

@try{ 
    [targetObject setValue:value forKey:key]; 
} @catch (NSException *e) { 
    if ([[e name] isEqualToString:NSUndefinedKeyException]) { 
    NSLog(@"oh well... handle the case where it has no key here."); // handle 
    } else { 
     [[NSException exceptionWithName:[e name] 
           reason:[e reason] 
           userInfo:[e userInfo]] 
     raise]; 
    } 
} 
+3

Aslında NSUndefinedKeyException bir sınıf değil, yalnızca bir dizedir. Bu nedenle, doğru şeyi yapmak için, (@ [isim] (NSException * e) { ; ([[e name isEqualToString: NSUndefinedKeyException]) {@\t \t; // başka \t \t} \t \t kolu { [[NSException exceptionWithName: [e adı] nedeni: [e sebep] userinfo: [e userinfo]] yükseltmek]; } } – mrueg

+0

Bu istisnayı Swift'te nasıl yakalayacağınız hakkında bir fikriniz var mı? – devios1