我正在创建一个应用程序,它看起来像Twitter应用程序,UITabBarController + UINavigationController。
在我的应用中,我需要有一个主要用户(例如你)和其他用户,你以及共享相同结构的用户,即类。
对于一群普通用户,我没有看到问题 - 你创建用户对象,使用它,ARC完成它的工作。
我的问题是:保存您的数据的最佳方法是什么,在标签之间访问或传递它们(并且可以按照特定顺序选择标签)。
我已经阅读了很多有关此主题的问题,我可以使用:
但是,我不认为我真的知道对,最佳回答。
修改 对不起,如果我写不清楚,我会尝试更好地解释。 当你启动应用程序时,你需要登录,登录后你可以与其他用户交谈,为他们做任务等。 我确实想要存储数据一个用户,因为当我在标签之间切换时,我需要知道我的身份和其他事情。但我接触过的其他用户在课堂设计方面实际上是相同的。他们都需要有姓名,头像,电子邮件等。
答案 0 :(得分:0)
您的问题仍然有点模糊,因为您不清楚是否要求保存数据或将信息从一个视图(标签)传递到另一个视图。但我仍然认为我得到了你想做的事。
首先让我澄清你的建议,因为其中一些建议彼此完全无关:
设计应用程序的逻辑取决于您自己。但是,例如,使用ChatSystem对象就是一个例子。
@interface ChatSystem...
{
User *you;
NSArray *otherUsers;
}
如果你像这样设计你的聊天系统对象,你不需要任何单例,因为你总是被同一个变量引用。所有其他用户都存储在数组otherUsers
中。
您可以跨视图(或选项卡)传递ChatSytem对象,并且您将始终知道哪一个是您,因为您将其引用为
myChatSystem.you
正如我之前所说,你的问题很模糊,但我希望这会对你有帮助。
编辑: 如果只有一个登录用户(YOU),您可以使用单一用户进行管理。那里有数百个单身人士的例子,所以抓住其中任何一个。因此,访问YOU用户只需调用使用单例实例。在上面的例子中,它就像是。
User *you; // Declared locally or in your class definition
you = [User singletonLoggedInUserInstance]; // get the logged In user
if (you) // if user is valid, meaning there IS a logged in user
{
//... do something, initiate chat conversation....
}
另一方面,如果您不想使用单例,只需将用户对象声明为您将对该对象(或用户)执行某些操作的视图,选项卡或控制器的属性。例如,如果对象A创建用户,而对象B想要对该用户执行某些操作,则执行以下操作:
@interface TabA
@property.... User *user;
@property ... TabB *tabB;
@end
- (void)passUserToTabB
{
self.tabB.user = self.user; //... pass user to Tab B
}
@interface TabB
@property.... User *user;
@end