1. ホーム
  2. iphone

[解決済み】iPhoneアプリでNSErrorを使用するにはどうすればよいですか?

2022-04-05 10:18:07

質問

私は自分のアプリでエラーをキャッチすることに取り組んでいます。 NSError . 私はそれを使用する方法と、それを入力する方法について少し混乱しています。

どのように入力し、どのように使用するか、どなたか例を挙げてください。 NSError ?

解決方法は?

さて、私が通常行うのは、実行時にエラーになる可能性のあるメソッドに NSError のポインタを使用します。そのメソッドで本当に何か問題が発生した場合、私は NSError を参照し、エラーデータでメソッドからnilを返します。

- (id) endWorldHunger:(id)largeAmountsOfMonies error:(NSError**)error {
    // begin feeding the world's children...
    // it's all going well until....
    if (ohNoImOutOfMonies) {
        // sad, we can't solve world hunger, but we can let people know what went wrong!
        // init dictionary to be used to populate error object
        NSMutableDictionary* details = [NSMutableDictionary dictionary];
        [details setValue:@"ran out of money" forKey:NSLocalizedDescriptionKey];
        // populate the error object with the details
        *error = [NSError errorWithDomain:@"world" code:200 userInfo:details];
        // we couldn't feed the world's children...return nil..sniffle...sniffle
        return nil;
    }
    // wohoo! We fed the world's children. The world is now in lots of debt. But who cares? 
    return YES;
}

そして、このようなメソッドを使うことができます。メソッドがnilを返さない限り、エラーオブジェクトをわざわざ検査する必要はありません。

// initialize NSError object
NSError* error = nil;
// try to feed the world
id yayOrNay = [self endWorldHunger:smallAmountsOfMonies error:&error];
if (!yayOrNay) {
   // inspect error
   NSLog(@"%@", [error localizedDescription]);
}
// otherwise the world has been fed. Wow, your code must rock.

エラーの localizedDescription に値を設定したため NSLocalizedDescriptionKey .

より詳しい情報を得るには アップルのドキュメント . 本当に良いものです。

のシンプルで素敵なチュートリアルもあります。 ココアは私のガールフレンド .