我是个初学者,最近在这个问题上遇到了很多麻烦。 我想从我的应用程序将NSDictnonary数据传递到服务器,在某些情况下,如果用户没有选择任何选项,我想删除nil对象。 我已经研究过这个似乎是正确方法的线程,但我没有成功在我的代码中实现。 How to remove a null value from NSDictionary
我的猜测是直接在我的NSDictonary中将代码实现为Null 这是我的词典代码
-(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;
}
我的猜测是它应该在代码中检查nil对象并删除主题。但我确实在努力弄清楚如何格式化代码。 我猜测代码应该是这样的,但我不知道在哪里放置它以及如何格式化它。
NSMutableDictionary *dict = [parametersForCreateActivities mutableCopy];
NSArray *keysForNullValues = [dict allKeysForObject:[NSNull null]];
[dict removeObjectsForKeys:DefaultcreateImageID];
答案 0 :(得分: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);