2015-06-10 4 views
2

Я новичок в Parse and Swift.Управление перечислением в PFObject - iOS Swift/Parse

У меня есть приложение, в котором люди играют друг против друга.

Я хочу создать фид активности, в котором результаты игр, приветствия, щеки (что-нибудь действительно) могут отображаться в списке.

Моя мысль заключается в создании класса Activity, который подклассифицирует PFObject, и я хотел бы иметь enum ActivityType для определения того, какой вид деятельности создается.

Могу ли я настроить объект Activity в Parse и PFObject в Swift, чтобы каждая активность была настроена с правильным типом ActivityType?

Я думаю, что мне нужен столбец «Тип» в Parse, это просто число и метод init, который считывает это число и задает правильный тип.

Звучит ли правильно?

Благодаря

ответ

0

Вы можете использовать столбец типа в разборе, хотя я бы ожидать каждого из различных видов пункта подачи, чтобы быть различными классами в разборе, поскольку все они имеют разные данные и отношения, чтобы вы могли использовать тип класса (имя).

В любом случае это всего лишь способ определить тип, поступающий с сервера. После этого вы хотите организовать организованный и общий подход к отображению элементов фида. Для этого у вас должен быть протокол, который определяет, какой элемент фида должен предоставить для отображения в фиде. Затем у вас есть набор классов, каждый из которых соответствует этому протоколу, и каждый из них имеет дело с одним из разных типов элемента фида, чтобы «переустановить» их в общий формат для отображения.

Использование enum в вашем приложении будет работать, но это может привести к тому, что у вас будет одно большое заявление о переключении, касающееся всего. Пока вы просто используете перечисление и переключаетесь, чтобы решить, какой класс создать для обработки элемента фида, тогда ваш код должен быть хорошо структурирован.

0

Я решил эту проблему. Это была «свободная» функциональность от Parse. Я думаю, в первую очередь, вы должны рассмотреть подклассирование PFObject (по многим причинам). Как только вы это сделаете, все, что вам нужно сделать, это добавить enum как свойство в ваш подкласс. Он автоматически обрабатывается Parse.

Parse знает, как преобразовать в NSNumber и наоборот для перечисления, не нужно беспокоиться об этом.

Обратите внимание, в файле .m:

@implementation MyParseObjectSubclass 

@dynamic aPropertyIWantPersisted; // declare your properties as dynamic to be managed by Parse 
@synthesize aLocalTransientProperty; // if you have transient properties that you don't want persisted to the server. 

+ (void)load 
{ 
    [self registerSubclass]; 
} 
+ (NSString*)parseClassName 
{ 
    return "MySubclass"; 
} 
@end 
Смежные вопросы