【问题标题】:Creating and populating an empty Array创建和填充一个空数组
【发布时间】:2015-02-12 16:35:18
【问题描述】:

我实际上是在学习 swift 以开发 iOS 应用程序。作为练习,我想创建并填充一个空数组,该数组将通过使用情节提要上的文本字段和按钮来填充。

var arr = []

// When button is pressed : 
arr.append(textfield.text)

XCode 告诉我 append 方法不是 NSArray 的方法。所以我使用了 addObject 之一,但它仍然不正确,因为 arr 变量包含 nil。

这是我的三个问题:

是否可以创建一个空数组,如果可以,如何填充它?

有时,在我的 ViewController 中,当我创建一个非空数组时,append 方法显然无效,我不明白为什么..

最后,为什么即使我使用语法:

var arr = [1] // For example

arr 对象是 NSArray 对象而不是 NSMutableArray 对象,因此无法添加/删除其中包含的任何对象?

我希望我的问题很清楚,否则我会上传更多我正在尝试构建的代码,

感谢您的回答!

【问题讨论】:

    标签: ios arrays swift


    【解决方案1】:

    尝试将您的数组定义为字符串数组,如下所示:

    var arr: [String] = []
    

    然后通过以下方式附加到您的列表中:

    arr.append("the string")
    

    arr += ["the string"]
    

    【讨论】:

    • 是的,这正是我在 5 分钟前阅读关于集合类型的 Swift 指南时所想的,我不记得数组是类型推断的,因此我需要按顺序指定空数组的类型稍后对其进行修改。谢谢@eightx2!
    • @VincentRolea 没问题,随时接受答案:)
    【解决方案2】:

    可以使用以下语法创建空数组。

    var emptyArray = [String]()
    emptyArray.append("Hi")
    

    this

    您也可以使用以下方法将元素添加到您的数组中。

    //append - to add only one element
    emptyArray.append("Hi")
    
    //To add multiple elements
    emptyArray += ["Hello", "How r u"]
    emptyArray.extend(["am fine", "How r u"])
    
    //Insert at specific index
    emptyArray.insert("Who r u", atIndex: 1)
    
    //To insert another array objects
    var array1 = ["who", "what", "why"]
    emptyArray.splice(array1, atIndex: 1)
    

    【讨论】:

    • 是的,我在发布我的问题后立即阅读了该指南,并实现了一种类型集合对象的数组,因此需要指定空对象的类型,因为 Swift 无法推断出它,感谢您的详细说明回答@Dev
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 2017-09-18
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多