2016-05-20 3 views
-1

Я читал несколько сообщений here и here, и я понимаю «почему». Ни одно из предложений на этих постах не функционировало для меня, но каждый шаг делал шаг за шагом. Это кажется мне взломом, и, как будто я что-то упускаю.CoreData NSNumber to Int32

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

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

  1. Шаг 1: Store CoreData Объект, как Примитивный Int32 (не показано в коде)
  2. Шаг 2: Fetch NSNumber Object (Отображение только необходимый код)
  3. Шаг 3: NSNumber к Int
  4. Шаг 4: Cast 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.

+0

Почему использование «Использовать скалярные свойства для примитивных типов данных» из http://stackoverflow.com/a/29447590/1187415 не работает для вас? –

+0

Он работает, если я изменяю свой тип данных на Int. Но так как мне нужен Int32 из-за размера переменной, и нет моста между NSNumber и Int32, он терпит неудачу, и я получаю сообщения об ошибках. Спасибо, что посмотрели на мой вопрос. Мое решение работает, оно просто чувствовалось. Пометить это как решившееся и двигаться дальше. :-) –

ответ

0

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

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

Смежные вопросы