0

Realm 0.92.3 を使用していますが、デフォルトのプロパティを設定しているにもかかわらず、null 値があるとクラッシュしました。これに関する解決策はありますか?そうでない場合、これは私にとって非常に重要であるため、coredata を使用して変換する可能性があります。null はいくつかのプロパティでランダムになります

@interface WatchlistNews : RLMObject
@property NSString              *nid;
@property NSString              *tid;
@property NSString              *country;

@end


 @implementation WatchlistNews
 + (NSString *)primaryKey {
     return @"nid";
 }

 + (NSDictionary *)defaultPropertyValues {
     return @{@"nid" : @"", @"tid": @"", @"country": @""};
 }
 @end

データ応答:

nid = 509319;
tid = <null>;
country = my;

エラーコード:

 -[NSNull UTF8String]: unrecognized selector sent to instance 0x10712b4c0 
 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull UTF8String]: unrecognized selector sent to instance 0x10712b4c0'
4

2 に答える 2

0

Realm はまだプロパティの設定nilをサポートしていませんが、 https://github.com/realm/realm-cocoa/issues/628NSStringに従って進行状況を追跡できます。

于 2015-05-22T16:06:45.510 に答える
0

Realm は複雑なデータ型をサポートしていないため、 などの複雑な値を割り当てようとする<null>とクラッシュします。

値については、サーバーから取得している応答を確認する必要があり<null>ます。応答に存在する場合は、空の文字列に置き換えます。値の発生を削除するには、取得している応答で次のコードを試してください<null>

-(NSMutableDictionary *) removeNullFromDictionary:(NSDictionary *) originalDictionary{

NSArray *allKeysArray = [originalDictionary allKeys];
const NSMutableDictionary *replaced = [originalDictionary mutableCopy];
const id nul = [NSNull null];
const NSString *blank = @"";

for(NSString *key in allKeysArray) {

    const id object = [originalDictionary objectForKey:key];

    if(object == nul) {

        [replaced setObject:blank forKey:key];

    }
}
return [replaced copy];

}

于 2015-05-19T14:44:21.783 に答える