小编luc*_*777的帖子

为Swift 2.0实例化Realm数据库 - 最佳实践?

我想知道实例化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)

realm swift2

12
推荐指数
1
解决办法
1655
查看次数

如何保证单实例应用(在多个虚拟桌面上)?

我正在编写一个 C# WinForms 应用程序,我需要确保在任何给定时间都有一个实例在运行。我以为我可以使用互斥锁来工作。

这是我找到的一个链接: 如何将应用程序限制为仅一个实例

当我使用单个桌面时,这很好用。但是,当在 Windows 10 中打开多个虚拟桌面时,这些桌面中的每一个都可以托管应用程序的另一个实例。

有没有办法在所有桌面上限制单个实例?

c# single-instance

3
推荐指数
1
解决办法
116
查看次数

标签 统计

c# ×1

realm ×1

single-instance ×1

swift2 ×1