我正在构建一个应用,其中一些用户可以比其他用户更多地访问功能。这个概念是一些用户是父母,其他人是孩子,父母可以添加家务,例如,孩子则不能。我想知道实现这种设置的最佳实践包括:
1。我应该为父母和孩子分别设置故事板和风险投资吗?对于父母以及其他屏幕,某些页面上应该存在一些按钮和功能。
2。这是在用户类中拥有角色属性的最佳方法吗?
3。一般而言,对于在用户(比如一个家庭)之间共享信息的应用程序,什么是设计的最佳实践?
如果有人碰巧有这种东西的Swift示例代码,那么看看我刚开始使用iOS会非常有帮助。
提前谢谢你。
答案 0 :(得分:3)
一般来说,
1)否。如果两个页面之间只有很小的视觉差异,您应该隐藏/更改用户不应该看到的元素。如果用户需要特殊视图,只需在故事板中创建该视图,并仅在适当时显示该视图。
2)要执行上述操作,您可以在用户实体上拥有指示用户“类型”的属性,或者您可以根据角色拥有多个用户对象,并根据实体类型显示/隐藏UI元素。
3)这是一个非常广泛的问题,实际上取决于应用的大小和复杂程度。
所有这一切都非常笼统。有许多因素可以决定执行此操作的最佳方式,包括:从哪里导入或创建用户,数据的敏感性,不同类型用户的数量或“权限集”。
答案 1 :(得分:0)
我对同样问题的解决方案:
enum UserRole {
case Admin
case FremiumUser
case PayingUser
}
}
struct User {
var name = "J. Doe"
var roles = [UserRole]()
}
CurrentUser {
// Singleton pattern
static let sharedUser = CurrentUser()
private init() {}
var user = User()
}
我正在构建一个分享您挑战的应用程序。受装饰模式和/或面向协议编程的启发,我目前的想法是拥有一个用户角色枚举,由我的属性持有用户类,可通过全局单例CurrentUser对象访问。每个屏幕(视图控制器,视图,你有什么)都可以检查当前用户的角色,并做出适当的反应。
思想?