数据类型与NSMutableArray添加对象(insertObject)引起的问题

看如下代码:

NSMutableArray *favoriteData = [[NSMutableArray alloc]init];
[favoriteData addObjectsFromArray:data];
NSDictionary *favData = [[NSDictionary alloc]init];
favData = self.rowData.copy;
[favoriteData insertObject:favData atIndex:0];
for (NSMutableDictionary *dictM in favoriteData) {
    if ([dictM.allKeys containsObject:@"vector"]) {
         Vector *vec = [dictM objectForKey:@"vector"];
          [dictM setObject:
          @[[NSDecimalNumber numberWithDouble:vec.X], [NSDecimalNumber numberWithDouble:vec.Y],
          [NSDecimalNumber numberWithDouble:vec.Z]] forKey:@"vector"];
     }
  }

由于insertObject添加是直接将NSDictionary *favData这个对象添加进了数组,故而取的时候仍旧是NSDictionary类型,所以setObject时会崩溃。
换成如下代码就可以了:
NSMutableDictionary *favData = [[NSMutableDictionary alloc]init];
favData = self.rowData.mutableCopy;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NSMutableArrayObjective-C中的可变数组类,常用于存储和管理一组有序的对象。以下是NSMutableArray的常见用法: 1. 创建NSMutableArray对象: ```objective-c NSMutableArray *array = [NSMutableArray array]; // 空数组 NSMutableArray *array = [NSMutableArray arrayWithObjects:@"obj1", @"obj2", nil]; // 初始化含有对象数组 ``` 2. 添加和删除对象: ```objective-c [array addObject:@"obj3"]; // 在数组末尾添加对象 [array insertObject:@"obj4" atIndex:2]; // 在指定索引位置插入对象 [array removeObject:@"obj2"]; // 移除指定对象 [array removeObjectAtIndex:0]; // 移除指定索引位置的对象 ``` 3. 替换和交换对象: ```objective-c [array replaceObjectAtIndex:1 withObject:@"newObj"]; // 替换指定索引位置的对象 [array exchangeObjectAtIndex:0 withObjectAtIndex:2]; // 交换两个索引位置的对象 ``` 4. 获取数组信息: ```objective-c NSUInteger count = [array count]; // 获取数组对象的数量 id obj = [array objectAtIndex:2]; // 获取指定索引位置的对象 NSInteger index = [array indexOfObject:@"obj3"]; // 获取指定对象的索引位置 BOOL containsObj = [array containsObject:@"obj2"]; // 判断数组是否包含指定对象 ``` 5. 遍历数组: ```objective-c for (id obj in array) { // 遍历数组中的对象 } [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { // 使用block遍历数组中的对象,可以获取对象、索引和停止遍历的标志 }]; ``` 6. 数组排序: ```objective-c [array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { // 自定义的比较方法,用于数组排序 }]; ``` 这只是NSMutableArray的一些常见用法,还有其他更多的方法和功能可供使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值