从 API 响应中向 NSDictionary 添加一个元素
Add an element to NSDictionary from API response
我正在向服务器发送 API 请求,我收到以下格式的 JSON 响应:
{
"id": 1,
"name": "example",
"file": "http://example.com/file.png"
}
我想做的是,提取 file
元素并将其添加到现有的 NSDictionary,这是我的 .h
文件
@property (strong, nonatomic) NSDictionary *postedContent;
这里我在.m
文件
中赋值
self.postedContent = @{@"agent_id": agent_id, @"status_id": selectedStatusId ,@"message": comment ,@"ratingDate": currentDate };
这是我尝试将文件元素添加到 self.postedContent
的地方
// Retrieve file element from API response
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:&error];
NSArray* file = [json objectForKey:@"file"];
// Add it to NSMutableDisctionary
NSMutableDictionary *notificationContent = self.postedContent;
notificationContent[@"file"] = file;
这不起作用,因为 self.postedContent
是 NSDictionary
类型,而 notificationContent
是 NSMutableDictionary
类型
如何在 self.postedContent 中添加文件元素,这就是我最终期待的结果
NSDictionary *content = @{@"agent_id": agent_id, @"status_id": selectedStatusId ,@"message": comment ,@"ratingDate": currentDate, @"file": file };
我哪里错了?
谢谢。
NSMutableDictionary *notificationContent = [self.postedContent mutableCopy];
notificationContent[@"file"] = file;
self.postedContent = [notificationContent copy];
如果您经常这样做,请将 postedContent 设为 NSMutableArray,或者创建一个协议方法。
将字典分配给 notificationContent 指针时,您将需要制作字典的可变副本。目前你只是将一个不可变的字典分配给指针。方法是:
notificationContent = self.postedContent.mutableCopy;
希望对您有所帮助。
我正在向服务器发送 API 请求,我收到以下格式的 JSON 响应:
{
"id": 1,
"name": "example",
"file": "http://example.com/file.png"
}
我想做的是,提取 file
元素并将其添加到现有的 NSDictionary,这是我的 .h
文件
@property (strong, nonatomic) NSDictionary *postedContent;
这里我在.m
文件
self.postedContent = @{@"agent_id": agent_id, @"status_id": selectedStatusId ,@"message": comment ,@"ratingDate": currentDate };
这是我尝试将文件元素添加到 self.postedContent
的地方// Retrieve file element from API response
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:&error];
NSArray* file = [json objectForKey:@"file"];
// Add it to NSMutableDisctionary
NSMutableDictionary *notificationContent = self.postedContent;
notificationContent[@"file"] = file;
这不起作用,因为 self.postedContent
是 NSDictionary
类型,而 notificationContent
是 NSMutableDictionary
如何在 self.postedContent 中添加文件元素,这就是我最终期待的结果
NSDictionary *content = @{@"agent_id": agent_id, @"status_id": selectedStatusId ,@"message": comment ,@"ratingDate": currentDate, @"file": file };
我哪里错了?
谢谢。
NSMutableDictionary *notificationContent = [self.postedContent mutableCopy];
notificationContent[@"file"] = file;
self.postedContent = [notificationContent copy];
如果您经常这样做,请将 postedContent 设为 NSMutableArray,或者创建一个协议方法。
将字典分配给 notificationContent 指针时,您将需要制作字典的可变副本。目前你只是将一个不可变的字典分配给指针。方法是:
notificationContent = self.postedContent.mutableCopy;
希望对您有所帮助。