I have the following table - League. League has relations to other tables(Team, Organizers, Referee). The data model for the League table is as follows:
class League : NSObject
{
// MARK: Properties
var created: NSDate = NSDate()
var updated: NSDate = NSDate()
var objectId: NSString?
var ownerId: NSString?
var name: NSString?
var numberOfTeams: NSNumber?
var finishDate: NSDate = NSDate()
var startDate: NSDate = NSDate()
var teams: NSMutableArray? = NSMutableArray()
var organizers: NSMutableArray? = NSMutableArray()
var games: NSMutableArray? = NSMutableArray()
var referees: NSMutableArray? = NSMutableArray()
func addToTeams(team: Team)
{
if(self.teams == nil)
{
self.teams = NSMutableArray()
}
self.teams?.addObject(team)
}
func removeFromTeams(team: Team)
{
self.teams?.removeObject(team)
if(self.teams?.count <= 0){
self.teams = nil
}
}
func loadTeams() -> NSMutableArray
{
if(self.teams != nil)
{
Backendless.sharedInstance().persistenceService.load(self, relations: ["teams"])
return self.teams!
}
return NSMutableArray()
}
func freeTeams()
{
if(self.teams == nil){
return
}
self.teams!.removeAllObjects()
self.teams = nil
}
//Organizers
func addToOrganizers(organizers: Organizers)
{
if(self.organizers == nil)
{
self.organizers = NSMutableArray()
}
self.organizers?.addObject(organizers)
}
func removeFromOrganizers(organizers: Organizers)
{
self.organizers?.removeObject(organizers)
if(self.organizers?.count <= 0){
self.organizers = nil
}
}
func loadOrganizers() -> NSMutableArray
{
if(self.organizers != nil)
{
Backendless.sharedInstance().persistenceService.load(self, relations: ["organizers"])
}
return self.organizers!
}
func freeOrganizers()
{
if(self.organizers == nil){
return
}
self.organizers!.removeAllObjects()
self.organizers = nil
}
func addToGames(game: Game)
{
if(self.games == nil)
{
self.games = NSMutableArray()
}
self.games?.addObject(game)
}
func removeFromGames(game: Game)
{
self.games?.removeObject(game)
if(self.games?.count <= 0){
self.games = nil
}
}
func loadGames() -> NSMutableArray
{
if(self.games != nil)
{
Backendless.sharedInstance().persistenceService.load(self, relations: ["games"])
}
return self.games!
}
func freeGames()
{
if(self.games == nil){
return
}
self.games!.removeAllObjects()
self.games = nil
}
func addToReferees(referee: Referee)
{
if(self.referees == nil)
{
self.referees = NSMutableArray()
}
self.referees?.addObject(referee)
}
func removeFromReferees(referee: Referee)
{
self.referees?.removeObject(referee)
if(self.referees?.count <= 0){
self.referees = nil
}
}
func loadReferees() -> NSMutableArray
{
if(self.referees != nil)
{
Backendless.sharedInstance().persistenceService.load(self, relations: ["referees"])
}
return self.referees!
}
func freeReferees()
{
if(self.referees == nil){
return
}
self.referees!.removeAllObjects()
self.referees = nil
}
}
When I try to do the following, the league name gets updated but the relations stay unchanged. I am exactly following the documentation here
I have attached the whole file where I update the league relations.
func populateLeague() {
//Remove existing relations
for team in self.selectedLeague.teams! {
self.selectedLeague.removeFromTeams(team as! Team)
}
for organizer in self.selectedLeague.organizers! {
self.selectedLeague.removeFromOrganizers(organizer as! Organizers)
}
for ref in self.selectedLeague.referees! {
self.selectedLeague.removeFromReferees(ref as! Referee)
}
//Add new ones
for team in self.selectedTeams
{
self.selectedLeague.addToTeams(team)
}
for organizer in self.selectedOrganizers{
self.selectedLeague.addToOrganizers(organizer)
}
for ref in self.selectedReferees{
self.selectedLeague.addToReferees(ref)
}
self.selectedLeague.name = "League Three New Name"
var error: Fault?
backendless.data.save(self.selectedLeague, error: &error) as? League
if error == nil{
print("League has been update")
} else {
print("Server reported an error")
}
}
PopulateLeagueUITableViewController.txt (11.64kB)