UrK*_*UrK 5 arrays interop objective-c ios swift
我想斯威夫特的数组转换Int64成NSArray与NSNumber价值观.
@interface A : NSObject
- (void)bar:(NSArray *)tips;
@end
Run Code Online (Sandbox Code Playgroud)
Swift类继承了这个Objective-C类:
class B : A {
func foo(tips : [Int64]) {
self.bar(tips)
}
}
Run Code Online (Sandbox Code Playgroud)
Swift代码无法编译时出现以下错误:
Type '[Int64]' does not conform to protocol 'AnyObject'
Run Code Online (Sandbox Code Playgroud)
我怎么能转换[Int64]成NSArray与NSNumber实例?
PS我尝试了很多东西,找不到一个简单的方法来做到这一点:
self.bar(NSArray(array: tips))
self.bar(tips as NSArray)
Run Code Online (Sandbox Code Playgroud)
编辑:这个问题涉及不涉及试图建立新NSArray的独立的Int64对象,但现有的数组转换[Int64]成NSArray
映射它:
func foo(tips : [Int64]) {
bar(tips.map { NSNumber(longLong: $0) })
}
Run Code Online (Sandbox Code Playgroud)
这将构建一个新的数组,将所有内容包装Int64在中NSNumber,这个新数组应该可以毫无问题地NSArray进行转换。
| 归档时间: |
|
| 查看次数: |
3196 次 |
| 最近记录: |