我正在寻找一种将 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会更好?id1
Event