gpt4 book ai didi

arrays - 在 Swift 中创建对象数组的正确语法是什么?

转载 作者:行者123 更新时间:2023-11-30 13:40:01 25 4
gpt4 key购买 nike

我创建了两个单独的文件 [ Page.swiftPageTableViewController.swift]

在 Page.swift 中:

    class Page {

// MARK: Properties
var chapter: Int
var verse: Int
var sanskrit: String?

// MARK: Initialization
init?(chapter: Int, verse: Int, sanskrit: String?) {
// Initialize stored properties.
self.chapter = chapter
self.verse = verse
self.sanskrit = sanskrit
}


}

在我的 PageTableViewController.swift 中:

import UIKit

class PageTableViewController: UITableViewController {

// MARK: Properties
var pages = [Page]()


override func viewDidLoad() {
super.viewDidLoad()
createPages()
}

func createPages() {

let page1 = Page(chapter: 1, verse: 1, sanskrit: "अथ योगानुशासनम्")
let page2 = Page(chapter: 1, verse: 2, sanskrit: "योगश्चित्तवृत्तिनिरोधः")

pages += [page1, page2] // ERROR appears here as noted below..


}

}

但是在出现错误的地方,我得到:

Binary operator '+=' cannot be applied to operands of type '[Page]' and '[Page?]'

为什么会这样?

最佳答案

答案就在你眼前:

Binary operator '+=' cannot be applied to operands of type '[Page]' and '[Page?]'

[page1, page2]是可选Page的数组。您不能将可选 Page 数组添加到 Page 数组中。

为什么[page1, page2]是一个可选Page数组?因为page1和page2是可选的Page。

为什么 page1 是可选页面?因为你的 init 方法返回一个可选的 Page。这叫初始化吗?而不是初始化。

为什么你的 init 方法返回一个可选的 Page?因为这就是你的代码所说的。我看不出你这样做的原因,但你就是这么做的。

(现在,在修复 init 方法以返回非可选页面后,可能还有其他原因导致失败)。

关于arrays - 在 Swift 中创建对象数组的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35684304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com