From 10e410d0d9b6811ffe76f330e32c2c88ad34a6d9 Mon Sep 17 00:00:00 2001 From: Jay Tamboli Date: Thu, 26 Sep 2013 15:18:34 -0400 Subject: [PATCH] Handle nil values for Simplenote-synced content, tags, systemTags If we receive nil for content, tags, or systemTags, replace it with an empty string, empty array, or empty array, respectively, rather than trying to store a nil in the NSDictionary. Fixes #200 --- SimplenoteEntryCollector.m | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/SimplenoteEntryCollector.m b/SimplenoteEntryCollector.m index 1bdb0339..88c870f8 100644 --- a/SimplenoteEntryCollector.m +++ b/SimplenoteEntryCollector.m @@ -159,6 +159,15 @@ - (NSDictionary*)preparedDictionaryWithFetcher:(SyncResponseFetcher*)fetcher rec NSMutableDictionary *entry = [NSMutableDictionary dictionaryWithCapacity:12]; NSNumber *deleted = [NSNumber numberWithInt:[[rawObject objectForKey:@"deleted"] intValue]]; + NSArray *systemTags = [rawObject objectForKey:@"systemTags"]; + if (!systemTags) + systemTags = [NSArray array]; + NSArray *tags = [rawObject objectForKey:@"tags"]; + if (!tags) + tags = [NSArray array]; + NSString *content = [rawObject objectForKey:@"content"]; + if (!content) + content = [NSString string]; [entry setObject:key forKey:@"key"]; [entry setObject:[NSNumber numberWithInt:version] forKey:@"version"]; [entry setObject:deleted forKey:@"deleted"]; @@ -171,10 +180,10 @@ - (NSDictionary*)preparedDictionaryWithFetcher:(SyncResponseFetcher*)fetcher rec if ([rawObject objectForKey:@"publishkey"]) { [entry setObject:[rawObject objectForKey:@"publishURL"] forKey:@"publishkey"]; } - [entry setObject:[rawObject objectForKey:@"systemTags"] forKey:@"systemtags"]; - [entry setObject:[rawObject objectForKey:@"tags"] forKey:@"tags"]; + [entry setObject:systemTags forKey:@"systemtags"]; + [entry setObject:tags forKey:@"tags"]; if ([[fetcher representedObject] conformsToProtocol:@protocol(SynchronizedNote)]) [entry setObject:[fetcher representedObject] forKey:@"NoteObject"]; - [entry setObject:[rawObject objectForKey:@"content"] forKey:@"content"]; + [entry setObject:content forKey:@"content"]; //NSLog(@"fetched entry %@" , entry);