我想知道实例化Realm数据库的最佳实践是针对Swift 2. Realm for Swift 1.2和Swift 2之间的主要区别之一是Realm类增加了对错误处理的支持.因此,Realm网站上的此代码不再起作用:
让realm = Realm()
我可以想到在Swift 2世界中实例化一个Realm类的几种方法:
(1)让领域=试试!领域()
这个选项对我来说似乎有些"不安全",因为如果类无法实例化,它可能会导致运行时错误.
(2)将整个Realm操作(包括类实例化)放在Do-Catch块中
do {
let realm = try Realm()
realm.write{realm.add(myObject)}
}
catch
{
print("Some Realm error")
}
Run Code Online (Sandbox Code Playgroud)
这绝对有效,绝对安全.但是,每次我需要在数据库上执行操作时,我真的不喜欢实例化Realm类.如果我尝试创建一个IVAR'领域'并将其放在Do-Catch块之外,则该变量超出范围.例如,以下代码将无法编译......
//IVAR declared outside of Do-Catch...
let realm:Realm
do{
//Get instance of Realm
realm = try Realm()
//This write operation works
realm.write{realm.add(myObject_1)}
}
catch
{
print("Some Realm error")
}
//Create another Dog object
let myObject_2 = SomeObject()
//This next line produces an error: "Variable 'realm' used before being initialized".
//Initialized …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 C# WinForms 应用程序,我需要确保在任何给定时间都有一个实例在运行。我以为我可以使用互斥锁来工作。
这是我找到的一个链接: 如何将应用程序限制为仅一个实例。
当我使用单个桌面时,这很好用。但是,当在 Windows 10 中打开多个虚拟桌面时,这些桌面中的每一个都可以托管应用程序的另一个实例。
有没有办法在所有桌面上限制单个实例?