1

我正在寻找一种将 Firebase 列表映射到使用 Mantle 的自定义 Objective-C 对象的有效方法。Firebase 并没有真正的数组概念,因此列表中的每个项目都有一个明确的 id。Firebase 中的列表类型event如下所示:

"events": {
    "id0": {
        "name": "Event 1",
        "date": "2017-03-28T08:00:00+00:00",
        "venue": "Venue 1"
    },
    "id1": {
        "name": "Event 2",
        "date": "2017-03-29T08:00:00+00:00",
        "venue": "Venue 2"
    },
    ...
    "id5": {
        "name": "Event 6",
        "date": "2017-04-05T08:00:00+00:00",
        "venue": "Venue 6"
    }
}

在 Objective-C 术语中,这可以很好地转换为 NSDictionary,但在我的 UITableViewController 中使用 NSArray 会更容易。目前,我对每个事件都使用 NSDictionary,只需将事件的键移动到 Dictionary 中并创建一个字典数组,如下所示(请随意评论这是一个好主意还是坏主意):

{
    "eventId": "id0",
    "name": "Event 1",
    "date": "2017-03-28T08:00:00+00:00",
    "venue": "Venue 1"
},
{
    "eventId": "id1",
    "name": "Event 2",
    "date": "2017-03-29T08:00:00+00:00",
    "venue": "Venue 2"
}
...

我的想法是创建一个Event对象:

@interface Event: NSObject <MLTModel>

@property (nonatomic, strong) NSString *eventId;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSDate *date;
@property (nonatomic, strong) NSString *venue;

@end

所以我的问题是:有没有办法将此 Firebase 列表映射到Event带有 Mantle 的自定义对象,以便它可以轻松地用于 iOS 中的 UITableViews?具体来说,如何将 Firebase 事件的键(等)映射为自定义对象的属性id0,然后再返回?还是“手动”移动钥匙然后交给Mantle会更好?id1Event

4

0 回答 0