您好我有一个NSMutableArray的,我试试这个:斯威夫特 - 铸造的Int64到AnyObject为NSMutableArray的
var ma = NSMutableArray()
let number:Int64 = 8345834344
ma.addObject(number)// Error "Type Int64 does not conform to protocol AnyObject"
如何Int64的变量添加到NSMutableArray的()?
您好我有一个NSMutableArray的,我试试这个:斯威夫特 - 铸造的Int64到AnyObject为NSMutableArray的
var ma = NSMutableArray()
let number:Int64 = 8345834344
ma.addObject(number)// Error "Type Int64 does not conform to protocol AnyObject"
如何Int64的变量添加到NSMutableArray的()?
您使用的是基础数组(NSMutableArray的),所以你应该使用一个基金数量对象:
ma.addObject(NSNumber(longLong:number))
你也可以使用原生迅速数组:
var ma = [Int64]()
ma.append(number)
那么喜欢的Swift,这是在Swift中实现的。
所以,你可以做到这一点(或者类似的你想要的类型),这将神奇地让这种语言期待一个AnyObject可以使用一个Int64:
extension Int64 : _ObjectiveCBridgeable
{
public init(_ number: NSNumber)
{
self.init(number.longLongValue)
}
public func _bridgeToObjectiveC() -> NSNumber
{
return NSNumber(longLong: self)
}
public static func _getObjectiveCType() -> Any.Type
{
return NSNumber.self
}
public static func _isBridgedToObjectiveC() -> Bool
{
return true
}
public static func _forceBridgeFromObjectiveC(source: NSNumber, inout result: Int64?)
{
result = source.longLongValue
}
public static func _conditionallyBridgeFromObjectiveC(source: NSNumber, inout result: Int64?) -> Bool
{
result = source.longLongValue
return true
}
}
此解决方案也在此处提供:http://stackoverflow.com/a/35893518/1187415。 – 2016-06-09 04:52:54
感谢。我想NSMutableArray()使用.objectAtIndex :) – 2014-12-04 23:19:42
旧习惯死难。 – Mundi 2014-12-04 23:20:52
不,我只是不知道如何在swift数组中找到索引:) – 2014-12-04 23:24:33