2014-11-15 2 views
0

я пытаюсь преобразовать объект с ключом цене в NSString, но все, что я делаю, я получаю ошибку lldb на следующей строкеanyObject преобразуется в строку

arrayDic.setValue(object.objectForKey("price") as NSString, forKey: "price") 

Когда я не удалить его там нет ошибка. Объект.objectForKey («цена») - это тип номера в базе данных анализа. Как я могу преобразовать его в строку правильно?

код:

func loadItems() { 
    var query = PFQuery(className:"Items") 
    query.orderByAscending("createdAt") 
    query.findObjectsInBackgroundWithBlock { 
     (objects: [AnyObject]!, error: NSError!) -> Void in 
     if error == nil { 


      for object in objects { 

       arrayDic.setValue(object.objectForKey("price") as NSString, forKey: "price") 
       arrayDic.setValue(image, forKey: "image") 



      } 


     } else { 
      // Log details of the failure 
      NSLog("Error: %@ %@", error, error.userInfo!) 
     } 
    } 
} 
+0

Распад выражение на несколько утверждений, чтобы найти, где ошибка является. – zaph

ответ

1

object.objectForKey("price") имеет тип номера в базе данных синтаксического анализа

Тогда почему ты говоришь, что это строка? Помните, что as не convert ничего; это утверждение об истине. Если вы лжете, конечно, вы потерпите крах. Не ври!

Я предполагаю, что это NSNumber. Если я прав, скажите as NSNumber.

И так как эта вещь является число, вы не должны хотеть , чтобы сохранить его в виде строки в arrayDic, так просто оставить его как число.

(Кроме того, если arrayDic является словарь, вы не должны использовать valueForKey: -. Вы можете, но это глупо и круговое движение, и может иметь непредсказуемые последствия)