繁体   English   中英

将[Int64]的Swift数组转换为NSArray

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM