zoukankan      html  css  js  c++  java
  • 关于可变数组的一点小知识

    最近在使用iOS的可变数组时出现了一个错误,报错信息为:

    reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object'

    字面的意思就是可变数组的方法发送给了一个不可变的对象。

    声明和初始化的代码如下:

    //声明
    NSMutableArray *dataArray;
    
    
    //初始化
    dataArray = [NSMutableArray array];

    通过分析dataArray,发现只有在向服务器请求数据后,对dataArray进行了赋值,想来问题就是应该出现这里了。

    [manager POST:requestUrl
           parameters:jsonDictionary
              success:^(AFHTTPRequestOperation *operation, id responseObject) {
                  NSLog(@"json: %@", responseObject);
                  
                  dataArray = responseObject;
                  
                  [self.tableView reloadData];
                  
              } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                  NSLog(@"%@", error);
                  
                  
              }];

    所以问题应该是responseObject这个返回值是一个不可变的数组,在赋值后,dataArray也变成了不可变的数组。

    如果想继续使用,做些处理就可以了,例如:

    dataArray = [NSMutableArray arrayWithArray:dataArray];

    参考:http://stackoverflow.com/questions/22381384/ios-error-nscfarray-removeobjectatindex-mutating-method-sent-to-immutable

  • 相关阅读:
    JavaScript、Jquery:获取各种屏幕的宽度和高度
    CSS:文字兩端加中線寫法
    CSS:公用
    JavaScript:基礎知識
    jQuery:播放/暂停 HTML5视频[轉]
    手機Web頁面信息
    jQuery:open和opener使用說明
    CSS:overflow使用說明
    jQuery:常用插件
    BootStrap:基礎知識
  • 原文地址:https://www.cnblogs.com/dreamfree/p/4203898.html
Copyright © 2011-2022 走看看