2015-06-05 9 views
17

Kolay olmalı ama sadece ters dönüşümü bulabilirim. Int32'yi Swift'de Int'e nasıl dönüştürebilirim? Sorun farklı olmadığı sürece?Int32'yi Int'ta Swift'e nasıl dönüştürebilirim?

Çekirdek Veriler'de kayıtlı bir değere sahibim ve bunu bir İnt.

func myNumber() -> Int { 
    var myUnit:NSManagedObject 
    myUnit=self.getObject(“EntityName”) // This is working. 

    return Int(myUnit.valueForKey(“theNUMBER”)?.intValue!) 
} 
+1

'let i32 = UInt32 (911)' ve sonra 'let i = Int (i32)' umarım bu yardımcı olur –

+2

intValue döndürür Int32 kullanabilirsiniz Int –

+0

döndürmek için tamsayıDeğeri myUnit.valueForKey ("NUMBER") döndürür ?. tamsayıValue ?? 0 –

cevap

5

Hata? valueForKey'den sonra.

Int başlatıcısı isteğe bağlı olanları kabul etmez.

myUnit.valueForKey(“theNUMBER”)?.intValue! yaparak, isteğe bağlı bir değer verir ve! sonunda yardım etmiyor.

return Int(myUnit.valueForKey(“theNUMBER”)!.intValue) 

Ama güvenli başarısız olmak istiyorsanız siz de böyle yapabilirdi:

Sadece bu ile değiştirin

return myUnit.valueForKey(“theNUMBER”)?.integerValue ?? 0 

Ve sen bunu yapabilirsiniz işlev kısaltmak için:

func myNumber() -> Int { 
    let myUnit = self.getObject("EntityName") as! NSManagedObject 

    return myUnit.valueForKey("theNUMBER")?.integerValue ?? 0 
} 
+0

Teşekkürler! Şimdi çalışıyor. – Michel

32

bir şey eksik veya bu gülünç kolay değildir: Burada

hangi çalışmıyor, ben kullanıyorum kodudur?

let number1: Int32 = 10 
let number2 = Int(number1) 
+0

Bu garip, bunu yaptığımda bir hata alıyorum. – Michel

+0

Bu çok garip. Sadece oyun alanımda çalışıyor. Ne hatayı alıyorsun? – Eendje

+0

Dönüştürme siz yazdıkça, sorun farklı olmalıdır. Soruyu daha net hale getirmek için düzenledim. Fonksiyonun çalışmasını istiyorum, problemin dönüşüm hakkında olduğunu sanıyordum, ama belki de değil. Sadece ilk adımları Swift'de yapıyorum. – Michel

İlgili konular