gpt4 book ai didi

Swift - 使用 CGSize 执行选择器

转载 作者:行者123 更新时间:2023-11-28 10:55:13 29 4
gpt4 key购买 nike

我有这个电话:

myObject.perform(Selector("setCellSize:"), with: CGSize(width: 50.0, height: 50.0))

在类里面我有:

func setCellSize(_ size: CGSize) {
print(size)
self.itemSize = size
}

该方法被正确调用,但它打印 (0.0, 7.2911220195564e-304)。怎么了?

最佳答案

perform(_:with:)是来自 NSObjectProtocol

的方法

Sends a message to the receiver with an object as the argument.

特别是,

aSelector should identify a method that takes a single argument of type id. For methods with other argument types and return values, use NSInvocation.

如果你真的必须通过这个方法传递一个CGSize那么你可以将其包装到 NSValue 中:

let value = NSValue(cgSize: CGSize(width: 50.0, height: 50.0))
myObject.perform(#selector(setCellSize(_:)), with: value)


func setCellSize(_ size: NSValue) {
print(size.cgSizeValue)
}

关于Swift - 使用 CGSize 执行选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44008399/

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