在我的应用程序中,我有一个控制所有TableViewController
对象的Habit
。因此,当他们从Parse进来时,我拿出每个PFObject
并用它们各自的属性(名称,当前条纹,创建日期,创建它的用户)从中创建一个新的Habit
对象。加载后,用户可能会删除,编辑,添加新习惯,这让我不知道应该如何处理所有这些修改?
我应该继续使用我的Habit
对象,并且每次修改上传对Parse或简单的更改都会将Habit
对象从中删除并处理PFObject
s,这反过来又让我为每次修改编写更少的代码。
一个例子:
当用户创建一个新习惯时,我可以创建新的Habit
对象和PFObject
,如下所示:
Habit *habit = [Habit habitWithTitle:self.habitField.text];
habit.frequency = self.howOften;
habit.currentStreak = @0;
// add it to back end
PFObject *newHabit = [PFObject objectWithClassName:@"Habit"];
newHabit[@"name"] = self.habitField.text;
newHabit[@"currentStreak"] = @0;
或忘记Habit
类并使用PFObject
s并传递它们:
PFObject *newHabit = [PFObject objectWithClassName:@"Habit"];
newHabit[@"name"] = self.habitField.text;
newHabit[@"frequency"] = self.howOften;
newHabit[@"currentStreak"] = @0;
另一个例子是当从tableViewCell
滑动中删除习惯时,我必须从PFObject
对象创建Habit
,以便将其发送到后端,找到并删除它。
MVC的用武之地:我的理解是,在这种情况下,Habit
对象是模型,View是很好的视图,控制器是我的类来管理这两者之间的交互。我的模型可以是PFObjects吗?
如果继续上述方法,唯一的缺点是,如果项目中有多个需要转换为PFObject对象的模型,那么最终会围绕这些模型提供大量代码。
您可以编写一个单独的类,作为处理PFObject对象(写入/读取PFObject对象)的包装器,这样将与对象模型(例如Habit)映射到PFObject相关的逻辑集中在一个地方。