我发现这个错误。。。
2017-03-26 17:34:49.104919移动电话[518:254067]***
由于意外异常“RLMException”而终止应用程序,
原因:'只能将'string'和'int'属性指定为主键'
在预填充领域,我有所有的字符串列,除了两个用于lat,lng的双列。
这是我的模型:
import Foundation
import RealmSwift
class Destination: Object{
dynamic var destinationSlackChannelName = ""
dynamic var destinationSlackChannelId = ""
dynamic var destinationName = ""
dynamic var destinationType = ""
dynamic var destinationCode = ""
dynamic var destinationRegionCode = ""
dynamic var destinationSiteSlackChannelName = ""
dynamic var destinationCity = ""
dynamic var destinationCountry = ""
dynamic var destinationStatus = ""
dynamic var destinationLastUpdated = ""
dynamic var lat:Double = 0.0
dynamic var lng:Double = 0.0
}
下面是我如何在名为RealmManager的单例中配置和查询领域。。。。
func getHebronDestinations() -> Results<Destination> {
let bundleUrl = Bundle.main.url(forResource: "default", withExtension: "realm")
let config = Realm.Configuration(
fileURL: bundleUrl,
readOnly: true,
schemaVersion: 0,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 1) {
Log.info?.message("\(oldSchemaVersion)")
Log.info?.message("wtf")
}
if (oldSchemaVersion < 2) {
Log.info?.message("\(oldSchemaVersion)")
}
Log.info?.message("Realm migration did run") // Log to know migration was executed
}
)
let realm = try! Realm(configuration: config)
let naoHebronResults = realm
.objects(Destination.self)
//.filter("destinationRegionCode == 'nao' AND destinationCode == 'heb'")
Log.info?.message("\(naoHebronResults)")
for res in naoHebronResults{
Log.info?.message(res.destinationName)
}
return naoHebronResults
}
这是ViewController中的函数调用。。。
override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad")
let realmManager = RealmManager.shared
let hebDevices = realmManager.getHebronDestinations()
print(hebDevices)
}
如果模型中没有主键,为什么仍然会出现主键错误?
我通过领域浏览器从csv创建了这个领域文件…它以前工作过一次。
最佳答案
如果你没有一个“在玩”的模型的主键,那也没关系。我有一些还不在预填充领域内的模型,这些模型上有主键。
我以为只有“在游戏中/在领域内”的模特才算。
任何具有主键的对象子类都将导致错误。。。Terminating app due to uncaught exception 'RLMException',reason: 'Only 'string' and 'int' properties can be designated theprimary key'
感谢https://github.com/bdash
他的push
可以在项目中搜索名为primaryKey to的函数吗
看看你是否忽略了一个?
而且https://stackoverflow.com/users/3736093/fahim
关于swift - 模型中未定义主键,但显示了主键错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43036471/