2016-03-19 3 views
0

Я начинаю и в последнее время испытываю большие проблемы с этой проблемой. Я хочу передать NSDictnonary Data на сервер из своего приложения, а в некоторых случаях, если пользователь не выбрал какой-либо вариант, я хочу удалить нулевые объекты. Я рассмотрел эту тему, которая кажется правильным, но мне не удалось реализовать ее в моем коде. How to remove a null value from NSDictionaryКак удалить нулевое значение непосредственно из NSDictionary

Мое предположение было бы реализовать код для Null непосредственно в моем NSDictonary Here's моего словаря кода

 -(NSDictionary*)parametersForCreateActivities 

    { 
    NSString *token = [[A0SimpleKeychain keychain] stringForKey:tokenConstant]; 
    NSString *userId = [[A0SimpleKeychain keychain] stringForKey:child_id]; 
    NSString *userCreate = [[NSUserDefaults standardUserDefaults] objectForKey:@"CreateTitle"]; 
    NSString *createDescription = [[NSUserDefaults standardUserDefaults] objectForKey:@"DescriptionText"]; 
    NSString *createTimestart = [[NSUserDefaults standardUserDefaults] objectForKey:@"TimeStartString"]; 
    NSString *createTimestop = [[NSUserDefaults standardUserDefaults] objectForKey:@"TimeStopString"]; 
    NSString *createImage = [[NSUserDefaults standardUserDefaults] objectForKey:@"DefaultcreateImageID"]; 

    NSDictionary *parameters; 
    if (userId && token) { 
     parameters = @{child_id: userId, tokenConstant:token, activity_name :userCreate, create_Description :createDescription, create_Timestart :createTimestart, create_Timestop :createTimestop, create_Image :createImage}; 

    } 
    return parameters; 
} 

Я думаю, что он должен проверить, где-то в коде нулевых объектов и удалить тема. Но я действительно боролся с выяснением того, как форматировать код. Я предполагаю, что код должен быть чем-то вроде этого, но я понятия не имею, где его разместить и как его форматировать.

NSMutableDictionary *dict = [parametersForCreateActivities mutableCopy]; 
NSArray *keysForNullValues = [dict allKeysForObject:[NSNull null]]; 
[dict removeObjectsForKeys:DefaultcreateImageID]; 

ответ

0
NSMutableDictionary *mutableDict = [testDictionary mutableCopy]; 
    for (NSString *key in [testDictionary allKeys]) { 
     if ([testDictionary[key] isEqual:[NSNull null]]) { 
     mutableDict[key] = @"";//or [NSNull null] or whatever valueyou want to change it to 
    } 
} 
testDictionary = [mutableDict copy]; 
NSLog(@"%@",testDictionary); 
0

Попробуйте ниже код

NSMutableDictionary *yourDictionary; // Your dictionary object with data 

NSMutableDictionary *updatedDic = [yourDictionary mutableCopy]; 
for (NSString *key in [yourDictionary allKeys]) { 
    if ([yourDictionary[key] isEqual:[NSNull null]] || [yourDictionary[key] isKindOfClass:[NSNull class]]) { 
     updatedDic[key] = @""; 
    } 
} 
yourDictionary = [updatedDic copy]; 
NSLog(@"%@",yourDictionary); 
+0

Я пытался вам решение, но я буду получить сообщение об ошибке: initWithObjects forKeys: Кол-во:]: попытка вставить объект всухую из объектов [6] –