Получение PFObject из выбранной строки и сохранение в другом классе анализа

Я все еще новичок в программировании, и я пытаюсь создать кнопку, которая будет сохранять currentUser и EventID из PFObject, У меня есть класс в Parse под названием Users Attendance, который связывает пользователя с EventID чтобы отслеживать все события, которые пользователь говорит, что они посетят. У меня возникают проблемы при настройке UIB-кнопки для сохранения EventID из PFObject, который находится в строке, выбранной из TableView, Может ли кто-нибудь помочь, пожалуйста?

Вот настройка TableView:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject!) -> PFTableViewCell {

    var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! EventsTableViewCell!
    if cell == nil {
        cell = EventsTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
    }
    cell.attend.tag = indexPath.row
    cell.attend.addTarget(self, action: "attendingEvent:", forControlEvents: UIControlEvents.TouchUpInside)


    // Extract values from the PFObject to display in the table cell

    if let eventTime = object?["EventTime"] as? String {
    cell.EventTime.text = eventTime
    }

    if let eventName = object?["EventName"] as? String {
        cell.EventName.text = eventName
    }

    var initialImage = UIImage(named: "DidNotLoad")
    cell.EventImage.image = initialImage
    if let parseEventPhoto = object?["EventImage"] as? PFFile{
        cell.EventImage.file = parseEventPhoto
        cell.EventImage.loadInBackground()
    }
    return cell
}

Здесь UIButton Я попытался создать:

func attendingEvent(sender: UIButton) {

    println("You tapped the button!")

    let currentUser = PFUser.currentUser()
    var getSenderInfo = sender.tag
    var selectedRowInfo = self.tableView.indexPathForSelectedRow()
    var objectFromRow = objectAtIndexPath(selectedRowInfo)

    let eventID: PFObject = objectFromRow?["EventID"] as! PFObject

    println(eventID)

    var attendance = PFObject(className: "UsersAttendance")
    attendance.setObject(currentUser!, forKey: "AttendingUser")
    attendance.setObject(eventID, forKey: "EventID")

    attendance.saveInBackgroundWithBlock {
    (succeeded: Bool, error: NSError?) -> Void in
    if error == nil {


    } else {

    }
}

}

1 ответ

Я, вероятно, выбрал бы другой подход и добавил бы отношение из класса Event к классу User и заполнил бы его посетителями.

Тем не менее, ваша проблема из-за несоответствия между EventID на исходном и целевом объектах. В одном случае это строка, а в другом - указатель, поэтому вы не можете использовать их взаимозаменяемо.

У вас есть другие проблемы с этим подходом, хотя вы можете защищать их, например, всегда создавать новые UsersAttendance экземпляры, для которых вам нужен какой-то другой способ проверить, есть ли уже элемент для этого пользователя и события, и какой-то другой способ удалить старые.

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