Swift: как получить имя и фотографию многих пользователей ParseIOS

Программируем под IOS
Ответить
Anonymous
 Swift: как получить имя и фотографию многих пользователей Parse

Сообщение Anonymous »

У меня есть группа пользователей в моем приложении сообщений, которые извлекают мой класс «сообщения». Мне нужно получить имя и фамилию отправителя, а также изображение профиля из их профиля Parse в моем приложении, чтобы отображать их в каждом сообщении в tableView.
Я просто хочу показать в tableView имена пользователей в классе «сообщения», содержащиеся в столбце «отправитель», который содержит указатели на PFUsers (из которых мне нужны "first_name", "last_name", "profile_picture")
мой класс пользователей
Изображение

мой класс сообщений
Изображение

обновить!
не могу понять, в чем проблема, если я что-то отключу, нужно изменить что-то еще. вот обновленный код:
findTimeLineDataQuery.includeKey("sender")

findTimeLineDataQuery.findObjectsInBackgroundWithBlock({
(objects : [AnyObject]?, error : NSError?) in

if let objects = objects where error == nil {

var chats:(timelinechatsData: [String], chatsDate: [NSDate]) = ([], []) //date might be NSDate
var message: (messageObjts: [String], messageSender: [String]) = ([], [])

var datesToString: [String] {
get {
var stringDates:[String] = []
let formatter = NSDateFormatter()
formatter.dateFormat = "dd-MM-yyyy" //change the format as you wish
for date in dates {
stringDates.append(formatter.stringFromDate(date))
}
return stringDates
}
}

for singleObject in objects {

if let user = singleObject["sender"] as? PFObject {
let first_name = user["first_name"] as! String
let last_name = user["last_name"] as! String

//Cast it to how you saved it. I can't see it from the picture so I assumed you saved it as NSData
let picture = user["picture"] as! NSData
self.picturesProfilesArray.append(picture)
//once you fetch the user data, you can save it in a dictionary or however you want and later call it from cellForRowAtIndex
}

if let stringData = singleObject["message"] as? String {

chats.timelinechatsData.append(stringData)

if let messageDate = singleObject.createdAt {
chats.chatsDate.append(messageDate!)
}
}

//new
if let messageObject = singleObject["messageObject"] as? String {
message.messageObjts.append(messageObject)
}

//new senderNickname
if let messageSender = singleObject["senderNickname"] as? String {
message.messageSender.append(messageSender)
}
}

//update self
dispatch_async(dispatch_get_main_queue()) {

self.timelineChatsDataArray += chats.timelinechatsData
self.chatsDateArray += datesToString
self.messageObjectArray += message.messageObjts
self.messageSenderArray += message.messageSender

self.tableView.reloadData()
}
}
})

изменения
по моему
var chatsDateArray : [NSDate] = []

и
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy HH:mm"
let useDate = dateFormatter.stringFromDate(self.chatsDateArray[indexPath.row])
cell.dateMessageLabel.text = useDate

должен стать
var chatsDateArray : [String] = []

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy HH:mm"
let useDate = String(self.chatsDateArray[indexPath.row])
cell.dateMessageLabel.text = useDate

но это приводит к следующему:

Инициализация неизменяемого значения 'first_name' никогда не использовалась; рассмотрите возможность замены присвоением «_» или его удаления.


Инициализация неизменяемого значения «last_name» никогда не использовалась; рассмотрите возможность замены присвоением '_' или его удаления.

это исчезает, если изменить varchat (chatsDate) обратно на строку, но это приводит к тому, что

невозможно преобразовать значение типа 'NSDate' в ожидаемый тип аргумента 'String'

включено
if let messageDate = singleObject.createdAt {
chats.chatsDate.append(messageDate!)
}
}


Подробнее здесь: https://stackoverflow.com/questions/336 ... -and-photo
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»