您好我有一個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