从 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.postedContentNSDictionary 类型,而 notificationContentNSMutableDictionary

类型

如何在 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;

希望对您有所帮助。