Int32.max
ve UInt32.max
'dan büyük tamsayı değerleri kaydetmek istediğim bir varlık üzerinde bir CoreData özniteliğim var. Değer bir endeks olarak kullanıldığından, arama performansı önemlidir. Bu yüzden CoreData'da Integer 64
veri türünü kullanmayı tercih ettim.Çekirdek Veri Tamsayı 64 Swift Int64 ile nasıl kullanılır?
Artık Int64'ün varlık örneğimde nasıl saklanacağını düşünüyorum. Ayrıca denediğim aşağıdaki farklı yaklaşımlara da bakınız.
Kullanım NSNumber
: NSInteger
import Foundation
import CoreData
class Node : NSManagedObject {
@NSManaged var id : NSNumber
}
node.id = Int64(1)
> 'Int64' is not convertible to 'NSNumber'
Kullanım: Int64
import Foundation
import CoreData
class Node : NSManagedObject {
@NSManaged var id : NSInteger
}
node.id = Int64(1)
> 'Int64' is not convertible to 'NSInteger'
Kullanım:
import Foundation
import CoreData
class Node : NSManagedObject {
@NSManaged var id : Int64
}
node.id = Int64(1)
> EXC_BAD_ACCESS (code=1, address=...)
nitelik tanımlanmalıdır nasıl/64 bit tamsayı kullanmak için atanmış?
Önerilen çözümünüzü kullanarak "NSNumber (longLong: value)" çalıştı. Size katılıyorum ki, ikincisi Swift'deki bir böcek. – bouke
32 bit mimarilerde Int64'e neden olan tuzakların (18113807) Xcode 6.1 beta sürümünde düzeltildi. – bouke