You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何初始化带可选Book参数的AF_PenName类?

正确初始化AF_PenName的两种方案

你的核心问题是:AF_PenName的初始化参数要求传入Book?类型的实例,但你传了Book这个类型本身,所以才会报错。根据你还没创建Book对象的情况,给你两种可行方案:

方案1:先创建Book实例再传入

如果业务逻辑需要关联一个实际的Book对象,先根据Book类的定义创建实例,再传给AF_PenName:

// 假设Book类的最简定义(如果有自定义初始化器就用对应的写法)
class Book {
    var name: String
    init(name: String) {
        self.name = name
    }
}

// 1. 创建Book实例
let myBook = Book(name: "我的第一本书")
// 2. 用实例初始化AF_PenName
let myPenName = AF_PenName(book: myBook)

方案2:直接传入nil

因为参数是可选类型Book?,允许传入空值。如果暂时不需要关联Book对象,直接传nil即可:

let myPenName = AF_PenName(book: nil)

额外提醒

  • 别再把Book类型本身(比如写AF_PenName(book: Book))当参数传,必须传Book的实例或者nil。
  • 如果Book类没有自定义初始化器,直接用Book()就能创建一个空实例。

内容的提问来源于stack exchange,提问作者Author

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:08:10