【问题标题】:Managing an enum within a PFObject - iOS Swift/Parse在 PFObject 中管理枚举 - iOS Swift/Parse
【发布时间】:2015-06-10 14:14:11
【问题描述】:

我是 Parse 和 Swift 的新手。

我有一个应用程序,人们可以在其中互相对战。

我想创建一个活动提要,让游戏结果、欢呼声、质问(任何东西)都可以显示在列表中。

我的想法是创建一个子类 PFObject 的 Activity 类,我希望有一个枚举 ActivityType 来确定正在创建哪种类型的 Activity。

我能否在 Parse 中设置 Activity 对象,在 Swift 中设置 PFObject,以便为每个 Activity 设置正确的 ActivityType?

我的想法是我需要 Parse 中的“类型”列,它只是一个数字和一个读取该数字并设置正确类型的 init 方法。

这听起来对吗?

谢谢

【问题讨论】:

    标签: ios swift parse-platform enums


    【解决方案1】:

    您可以在解析中使用类型列,但我希望您的每种不同类型的提要项在解析中都是不同的类,因为它们都有不同的数据和关系,因此您可以使用类类型(名称) .

    在任何一种情况下,这只是一种识别来自服务器的类型的方法。一旦有了这些,您就需要一种有条理且通用的方法来显示提要项目。为此,您应该有一个协议,该协议定义提要项目需要提供什么才能显示在提要上。然后你有一组类,每个类都符合该协议,并且每个类都处理不同类型的提要项中的一种,以将它们“变异”成通用格式以供显示。

    在您的应用程序中使用枚举是可行的,但它可能会导致您使用一个大的 switch 语句来处理所有事情。只要您只使用枚举和 switch 来决定创建哪个类来处理提要项目,那么您的代码应该结构良好。

    【讨论】:

      【解决方案2】:

      我已经解决了这个问题。这是 Parse 的“免费”功能。我认为首先,您应该考虑将 PFObject 子类化(出于多种原因)。一旦你这样做了,你所要做的就是将枚举作为一个属性添加到你的子类中。它由 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多