Tôi có thuộc tính CoreData trên một thực thể mà trên đó tôi muốn lưu trữ các giá trị số nguyên lớn hơn Int32.max
và UInt32.max
. Giá trị được sử dụng làm chỉ mục, do đó, hiệu suất tra cứu quan trọng. Vì vậy, tôi đã chọn sử dụng Integer 64
làm kiểu dữ liệu trong CoreData.Làm thế nào để sử dụng Core Data Integer 64 với Swift Int64?
Bây giờ tôi đang đấu tranh về cách lưu trữ Int64 trên cá thể thực thể của tôi. Xem thêm các phương pháp tiếp cận khác nhau mà tôi đã thử.
Sử dụng NSNumber
:
import Foundation
import CoreData
class Node : NSManagedObject {
@NSManaged var id : NSNumber
}
node.id = Int64(1)
> 'Int64' is not convertible to 'NSNumber'
Sử dụng NSInteger
:
import Foundation
import CoreData
class Node : NSManagedObject {
@NSManaged var id : NSInteger
}
node.id = Int64(1)
> 'Int64' is not convertible to 'NSInteger'
Sử dụng Int64
:
import Foundation
import CoreData
class Node : NSManagedObject {
@NSManaged var id : Int64
}
node.id = Int64(1)
> EXC_BAD_ACCESS (code=1, address=...)
Làm thế nào các thuộc tính cần được xác định/giao để sử dụng số nguyên 64 bit?
Sử dụng giải pháp được đề xuất của bạn 'NSNumber (longLong: value)' đã hoạt động. Tôi đồng ý với bạn rằng sau này có thể là một lỗi trong Swift. – bouke
Vấn đề với Int64 gây ra bẫy trên kiến trúc 32 bit (18113807) đã được sửa trong Xcode 6.1 beta. – bouke