[英]Converting Swift array of [Int64] into NSArray
我正在尝试将Swift Int64
数组转换为具有NSNumber
值的NSArray
。
@interface A : NSObject
- (void)bar:(NSArray *)tips;
@end
Swift类继承了这个Objective-C类:
class B : A {
func foo(tips : [Int64]) {
self.bar(tips)
}
}
Swift代码无法编译并出现以下错误:
Type '[Int64]' does not conform to protocol 'AnyObject'
如何使用NSNumber
实例将[Int64]
转换为NSArray
?
PS我尝试了很多事情,但找不到简单的方法来做到这一点:
self.bar(NSArray(array: tips))
self.bar(tips as NSArray)
编辑 :这个问题有关,不涉及尝试从单独的Int64
对象构建新的NSArray
,而是将现有数组[Int64]
转换为NSArray
映射它:
func foo(tips : [Int64]) {
bar(tips.map { NSNumber(longLong: $0) })
}
这将建立一个新的数组,将所有Int64
包裹在NSNumber
,这个新数组应该可以毫无问题地转换为NSArray
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.