我在练习一些代码,遇到了一些问题。
这是密码
class Food {
let name:String
var fruits:[Fruits]?
init(name:String) {
self.name = name
}
}
class Fruits {
let name:String
let capacity:Int
init(name:String, capacity:Int) {
self.name = name
self.capacity = capacity
}
}
var macFood: Food = Food(name: "macFood")
macFood.fruits
macFood.fruits = [Fruits(name: "Apple", capacity: 1), Fruits(name: "Banana", capacity: 2)]
macFood
macFood.fruits
macFood.fruits += [Fruits(name: "Grape", capacity: 3)]
所有的代码都很好,打印得很好,但是最后一行带来了一个问题。
我以为是macFood。水果是数组。
因为macFood。水果=[水果(名称:“苹果”,容量:1),水果(名称:“香蕉”,容量:2)]工作。
所以我想我可以使用'='运算符添加另一个元素。
但它在最后一行崩溃了,macFood。水果=[水果(名称:“葡萄”,容量:3)]
错误消息为
“二进制运算符”=“不能应用于“[结果]?”类型的操作数”还有“[水果]”macFood。水果=[水果(名称:“葡萄”,容量:3)]'
'期望参数列表的类型'(inout R, S)'macFood.fruits=[水果(名称:"葡萄",容量:3)]'
问题
>
macFood.fruits数组吗?
2-1. 如果是,我可以在数组中添加其他元素吗?
2-2. 如果不是,为什么这个数组不是?
2-1-1。如果是和是,我如何在数组中添加另一个元素?
2-1-2. 如果是但不是,为什么我不能在数组中添加元素?
谢谢你!
你需要像这样申报食物类别
class Food {
let name:String
var fruits = [Fruits]()
init(name:String) {
self.name = name
}
}
class Fruits {
let name:String
let capacity:Int
init(name:String, capacity:Int) {
self.name = name
self.capacity = capacity
}
}
使用
let macFood: Food = Food(name: "macFood")
macFood.fruits = [Fruits(name: "Apple", capacity: 1), Fruits(name: "Banana", capacity: 2)]
macFood.fruits += [Fruits(name: "Grape", capacity: 3)]
抱歉,我忽略了。
你的问题是“macFood”。“水果”是可选的,您不能将非可选类型添加到可选类型上。
您可以设置水果非可选,如
var fruits:[Fruits] = []
或者使用append方法,如:
if macFood.fruits?.append(Fruits(name: "Grape", capacity: 3)) == nil {
myArray = [Fruits(name: "Grape", capacity: 3)]
}
>
是的,它是一个数组。
2.1是
2.1.1您可以使用yourArray.append(对象)
添加其他元素
我正在尝试构建一个简单的Swift应用程序来计算增值税(增值税=20%)。 因为某种原因我一直 二进制运算符*不能应用于Int和Double类型的操作数 在线上
二进制运算符' (字符串?)是什么类型?
我试图通过UISearchBar在UITableView上搜索用户。问题是,当我尝试时,错误不断出现。 这是我的代码: 我正在尝试通过Firebase fetch在我的应用程序中搜索用户。我已经将用户带到了UITableView上,问题是我无法搜索特定的用户。请帮忙!我什么都试过了。
问题内容: 我正在尝试创建一个for循环,但似乎无法理解如何摆脱此错误 我的代码: 错误在线上和 问题答案: 您不能使用浮点类型创建一个(或)。 您要么要将其转换为: 或者您想使用(Swift 2语法): Swift 3语法: 取决于是否需要浮点精度。请注意,如果您的上限是一个非整数值,则该版本将比范围运算符版本多迭代一次,这是因为它将忽略小数部分。
以下代码过去可以在swift 2.2中编译,现在不再在swift 3.0中编译。我们如何解决这个问题? 错误:二进制运算符“====”不能应用于“Any”类型的操作数还有“UIBarbuttonite!”
我有一个var json:[[String:Any]=[[:]],其中包含如下json响应: 我写了一个枚举: 然后,我使用此方法对类别进行排序: 在那之后,我得到了这样一个错误 二进制运算符““不能应用于“