2015-05-20 6 views
0

Я очень новичок в быстроте, и я не знаю Obj C, поэтому многие ресурсы трудно понять. В основном я пытаюсь заполнить словарь PFUsers из моего запроса, а затем установить PFUser ["friends"] в этот словарь. Проще говоря, мне нужен список друзей в моем классе PFUser, где каждый друг является PFUser и строкой. Спасибо!Как вы храните словарь на Parse с помощью swift?

 var user = PFUser() 
     var friendsPFUser:[PFUser] = [] 
     var friendListDict: [PFUser:String] = Dictionary() 

     var query = PFUser.query() 
     query!.findObjectsInBackgroundWithBlock { 
      (users: [AnyObject]?, error: NSError?) -> Void in 

      if error == nil { 
       // The find succeeded. 
       println("Successfully retrieved \(users!.count) users.") 
       // Do something with the found objects 
       if let users = users as? [PFUser] { 
        friendsPFUser = users 
        for user in friendsPFUser{ 
         friendListDict[user] = "confirmed" 
        } 
        user["friends"] = friendListDict //this line breaks things 
        user.saveInBackground() 
       } 
      } else { 
       // Log details of the failure 
       println("Error: \(error!) \(error!.userInfo!)") 
      } 
     } 

Чтобы было ясно, этот код компилируется, но когда я добавляю

user["friends"] = friendListDict 

мое приложение аварии.

+0

@Eric D. Я пытаюсь добавить поле к пользователю. В примере на странице, которую вы мне связали, они добавили строку, подобную этой: user ["phone"] = "415-392-0202" Furthurmore говорит на той же странице, что "Ключи должны быть буквенно-цифровыми строками. Значения могут быть строками, числа, булевы или даже массивы и словари - все, что может быть кодировано JSON ». – Alicia

+0

Какое сообщение об ошибке вы получаете при сбое? – Moritz

+0

@ Eric D. 2015-05-20 13: 22: 21.656 soundapp [5222: 1073465] - [PFUser copyWithZone:]: непризнанный селектор отправлен в пример 0x1741919f0 2015-05-20 13: 22: 23.677 soundapp [5222: 1073465 ] [Ошибка]: Пойманный «NSInternalInconsistencyException» с причиной «PFObject содержит элемент контейнера, который не кэшируется».: (И здесь печатает трассировку стека ...) – Alicia

ответ

0

Для тех, у кого могут возникнуть проблемы. «NSInternalInconsistencyException» с причиной «PFObject содержит элемент контейнера, который не кэшируется». Добавление объектов пользователю (например, массивам или словарям) по соображениям безопасности в Parse, пользователь для такого поля, который будет изменен, должен быть текущим пользователем. Попробуйте зарегистрироваться и использовать addObject внутри блока и не забудьте сохранить его! Это помогло мне с аналогичной проблемой.