iOS:Realm,检查对象是否为零

时间:2016-09-16 06:24:39

标签: ios swift realm

我有这个代码填充数组:

func loadObjectsFromRealm() {
    private var myObjects: [MyObjects] = []
    guard let realm = try? Realm() else { return }
    myObjects = realmUtility.getAll(realm)
}

当我要使用它时,如何检查对象是否为零? 例如:

func getFirst() {
var myFirstObj = myObjects[0]    
}

是否有东西要检查对象myFirstObject是否真实?

5 个答案:

答案 0 :(得分:2)

// Check for specific object with primary key

func objectExist (id: String) -> Bool {
        return realm.object(ofType: MyObject.self, forPrimaryKey: id) != nil
}

// Returns true or false
objectExist(id: "1")

答案 1 :(得分:0)

您可以尝试使用通常的Swift if语句:

if let myFirstObj = myObjects.first
   // Do anything with the first object
} else {
   print("No first object!")
}

我认为对于这种情况来说已经足够了。

答案 2 :(得分:0)

我尝试了以下方式,你可以这样检查。这里我刚创建了一个nil对象并进行了检查,你可以为你的对象做同样的事情

 let obj :UserProfile? = nil;

    if (obj == nil){
        print("nil objUser");
    }else{
        print("objUser = \(objUser)")
    }

输出 nil objUser

答案 3 :(得分:0)

你可以在访问它之前检查对象是否真的存在

if var myObj: MyObjects = myObjects.indices.contains(index) ? myObjects[index] : nil {
    // myObj is exist
}

答案 4 :(得分:0)

我想通过@andromedainiative对答案发表评论,但我没有足够的重复点。

' ID'不能成为一个字符串 - 需要成为一个Int;

func objectExists(id: Int) -> Bool {
        return realm.object(ofType: MyObject.self, forPrimaryKey: id) != nil
    }

//Returns true of false

objectExists(1)