1

RESTKITを使用して、サーバー側のプロパティをクライアント側のプロパティにマップしています。

RESTKITがサーバーからクライアント側のNSUIntegerプロパティにNULL値をマップしようとすると、[NSNullunsignedIntValue]エラーが発生します。

例えば:

//User object property "new_questions_count" defined on client side with NSUInteger property
@interface User : NSObject <NSCoding>
{
    NSUInteger new_questions_count;
}

@property (nonatomic, assign) NSUInteger new_questions_count;

@end

//User Object Mapping - mapping "new_question_count" to server's json value
RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[User class]];
[userMapping mapAttributes:@"new_question_count",nil];
[provider setMapping:userMapping forKeyPath:@"user"];

上記のシナリオでは、json値が "new_questions_count":nullの場合、[NSNullunsignedIntValue]エラーが発生します。

サーバー側の実装を変更せずに、クライアント側でチェックを実行してこれを解決するにはどうすればよいですか?

4

1 に答える 1

0

実際に JSON をデコードするコードは示されていませんが、NSNullクラスを正しく尊重するサードパーティ ライブラリを使用していると想定しています。この場合、これを使用して、キー @"x" のオブジェクトが null かどうかを確認できます。

if ([[dictionary objectForKey:@"x"] isKindOfClass:[NSNull class]]) {
    // it is NULL
} else {
    // it is not NULL, but it still might
    // not be in the dictionary at all.
}
于 2011-09-25T14:18:01.677 に答える