【问题标题】:Append to array in swift - has no member append?快速追加到数组 - 没有成员追加?
【发布时间】:2016-12-03 04:06:10
【问题描述】:

我在这段代码中做错了什么?

为什么会出现错误?

“'NSMutableArray' 类型的值没有成员 'append'”

    static func saveUserData()
    {
        let item:NSDictionary = ["TIME":"12:00","LOCATION":"here"]
        let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        let documentsDirectory = paths[0]
        let filePath = documentsDirectory + "/datafile.dat"
        var readArray:NSMutableArray? = NSMutableArray(contentsOfFile: filePath)

        if var array = readArray {

            print("loaded array - appending..." )

           // PROBLEM IS HERE 
             var damnArray:NSMutableArray = array
             damnArray.append(item)
         } else {
           //
         }
    }

【问题讨论】:

  • 追加它仅适用于 Swift 原生数组类型。

标签: swift append nsarray


【解决方案1】:

因为你使用的是NSMutableArray,所以你需要使用addObject

damnArray.addObject(item)

append 像这样与 swift 数组一起使用

var arr = [Int]()
arr.append(5)

有关 swift array 的更多详细信息,请查看此apple documentation 或此tutorial

【讨论】:

  • 你能告诉我声明像var arr : [[String : Any]]?var arr = [[String : Any]]()这样的数组之间的区别吗?我对这些很困惑。请帮帮我。
【解决方案2】:

您已将 dammArray 声明为 NSMutableArray。所以没有方法 append 可用。 Append 在 swift 数组对象中可用。

 var damnArray:NSMutableArray
 damnArray.addObject(item)

 var damnArray = [NSDictionary]()
 damnArray.append(item) 

【讨论】:

    【解决方案3】:

    根据您的回答和语法,这对我有用,谢谢,在我的代码中是:

    @IBAction func btnSend(_ sender: UIButton)
    
    {
    
        //data.append(tfData.text!)
    
        data.add(tfData.text!)
        tblViewList.reloadData()
    
        tfData.resignFirstResponder()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-28
      • 2011-08-10
      • 2015-06-10
      • 2016-03-02
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多