2015-03-29 2 views
0

Я работаю над реализацией подкласса PFObject под названием Event в Swift. Я следовал руководству подкласса в документах Parse, но я не понимаю, как и где писать код, который добавляет данные в ivars. Ниже приведено мое то, что у меня есть в моем классе, включая иваров.Использование конструкторов для инициализации экземпляров vars subclass PFObject

@NSManaged var name:String 
@NSManaged var time:NSDate 
@NSManaged var favorite:Bool 
@NSManaged var moderator: String 
@NSManaged var speakers: [String] 

@NSManaged var slides: PFFile? 

@NSManaged var files: [PFFile]? 

override class func initialize() { 
    var onceToken : dispatch_once_t = 0; 
    dispatch_once(&onceToken) { 
     self.registerSubclass() 
    }   
} 

class func parseClassName() -> String! { 
    return "Event" 
} 

Как правило, я бы реализовал конструктор init() или что-то подобное. Однако я понял, что данные уже будут содержаться в словаре PFObject, когда он будет получен с сервера. Где я могу поместить код для копирования и поместить эти данные в экземпляры vars из словаря PFObject? Предполагается, что я создам объект через запрос и выборку с сервера, а не локально, используя метод object().

+0

У вас нет. Вот почему эти свойства привязаны к @NSManaged. Вы можете использовать эти свойства для получения и установки данных по объекту, из которого он будет автоматически извлекаться и обновлять словарь, содержащий данные. – deadbeef

ответ

1

Основываясь на комментарии deadbeef выше, я понял, что могу просто использовать getters и сеттеры Swift для вычисляемых свойств для чтения и записи значений из словаря данных PFObject. Например, свойство, которое я намерен иметь только для чтения:

var name:String 
{ 
    return self["name"] as String 
} 

И это свойство я намерен иметь чтения-записи

var favorite:Bool 
{ 
    get { 
     return self["favorite"] as Bool 
    } 
    set(value) { 
     self["favorite"] = value 
    } 
} 
0

Вам не нужно копировать вручную. Это рамочная работа Parse. Объекты будут заполнены данными после извлечения.