CoreData NSNumber для Int32

Я прочитал несколько постов здесь и здесь, и я понимаю "почему". Ни одно из предложений в этих постах не сработало для меня, но пошло на конвертацию. Это похоже на хак для меня и как будто я что-то упустил.

Я включил последний бит кода здесь.

Мой сценарий:

  1. Шаг 1: Сохранить объект CoreData как Primitive Int32 (не показано в коде)
  2. Шаг 2: Получить NSNumber Object (показывает только необходимый код)
  3. Шаг 3: NSNumber для Int
  4. Шаг 4: приведите Int к Int32

    var finalQTY:Int32
    
    //Step 2
    if let retQTY = managedObject.valueForKey("totQty") as? NSNumber { 
    //Step 3       
    let preQTY = retQTY as Int
    //Step 4
    finalQTY = Int32(preQTY)
            }
    

Есть ли способ лучше? Я чувствую, что что-то упустил? (Использование Int не вариант из-за размера участвующих чисел. Я использовал QTY здесь, но это было просто в качестве примера). Ваши отзывы и ответы очень ценятся, так как я продолжаю изучать Swift.

1 ответ

Похоже, что нет более чистого способа сделать это, кроме двухэтапного процесса, чтобы перевести его из NSNumber в Int 32.

Спасибо всем, кто пинговал меня на этом.

Другие вопросы по тегам