在 Swift 中使用自定义类在数组中显示 UIImage
Posted
技术标签:
【中文标题】在 Swift 中使用自定义类在数组中显示 UIImage【英文标题】:Display UIImage within an array with custom class in Swift 【发布时间】:2015-07-22 13:41:24 【问题描述】:我有一个自定义类 Product 定义为
class Product: NSObject
var name: String
var priceLabel: String
var productImage: UIImage
init(name: String, priceLabel: String, productImage: UIImage)
self.name = name
self.priceLabel = priceLabel
self.productImage = productImage
super.init()
我已经用那个自定义类创建了一个数组
let toy = [
Product(name: "Car", priceLabel: "$5.00"),
Product(name: "Train", priceLabel: "$2.50")
]
如何将 UIImage 插入该数组?我需要为每个玩具插入不同的图片。
提前致谢
【问题讨论】:
【参考方案1】:有几种方法可以做到这一点,但您的代码只需示例 1 即可:
// Example 1:
let toy = [
Product(name: "Car", priceLabel: "$5.00", productImage:UIImage(named: "myImage.png")!),
...
]
// Example 2:
let product1 = Product(name: "Car", priceLabel: "$5.00")
product1.productImage = UIImage(named: "myImage.png")!
let toy = [
product1,
...
]
// Example 3:
let toy = [
Product(name: "Car", priceLabel: "$5.00"),
...
]
if let prod = toy[0]
prod.productImage = UIImage(named: "myImage.png")!
您只有一个带有 3 个参数的 init,所以如果您创建这样的对象:
Product(name: "Car", priceLabel: "$5.00")
它不会编译,因为你没有初始化器,它只接受两个参数。
【讨论】:
【参考方案2】:试试这个:
let newArray = toy.mapProduct(name: $0.name, priceLabel: $0.priceLabel, productImage:UIImage(named: "myImage.png")!)
旁注:如果你想让你的初始化器更加动态,请使用默认参数。
init(name: String = "DefaultName", priceLabel: String = "DefaultName", productImage: UIImage = UIImage(named: "DefaultImage"))
self.name = name
self.priceLabel = priceLabel
self.productImage = productImage
super.init()
【讨论】:
以上是关于在 Swift 中使用自定义类在数组中显示 UIImage的主要内容,如果未能解决你的问题,请参考以下文章
将数组内容(自定义类型)写入 plist 作为 swift 中的键控数组
如何使用 NSUserDefaults 在 Swift 中存储自定义类数组?