2016-09-16 70 views
0

我有這樣的代碼,我填充數組:iOS的:境界,檢查對象是無

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

我怎麼能檢查的對象是零或不是當我打算使用它們? 例如:

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

有什麼檢查對象myFirstObject是真的還是假的?

+0

我不是很在意這個問題,但我認爲後衛不會允許nil對象存儲在你的r因爲它將執行else塊並返回。所以不需要檢查後者。你得到任何零對象? – Janmenjaya

+0

如果您關注的是,檢查零 您可以通過此 做,如果(myFirstObj ==無){ 打印( 「沒有對象在這裏看到」) }其他{ 打印( 「myFirstObj = \(myFirstObj)」 ); } – Janmenjaya

+0

在Swift中通過可選綁定[安全(邊界檢查)數組查找可能的重複?](http://stackoverflow.com/questions/25329186/safe-bounds-checked-array-lookup-in-swift-通過可選綁定) – HAS

回答

0

可以if語句嘗試一個平常斯威夫特:

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

我認爲這足以讓這種情況。

+0

使用下標不檢查索引是否有效,而是使用'.first'。 – HAS

+0

你是對的。只是改變了。 – Orlando

+0

我先寫了......但它可以有任何索引 – CrazyDev

0

我嘗試了下面的方法,你可以這樣檢查。在這裏,我剛剛創建了一個零對象和檢查,你可以爲你的對象

let obj :UserProfile? = nil; 

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

輸出做同樣的:零objUser

0

你可以檢查對象訪問之前確實存在,

if var myObj: MyObjects = myObjects.indices.contains(index) ? myObjects[index] : nil { 
    // myObj is exist 
} 
1
// 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

謝謝,改變了答案。 – andromedainiative