iOS用户角色最佳实践

iOS用户角色最佳实践,ios,swift,uiviewcontroller,storyboard,Ios,Swift,Uiviewcontroller,Storyboard,我正在构建一个应用程序,其中一些用户将比其他用户有更多的功能访问权限。其概念是,一些用户是家长,另一些用户是孩子,家长可以添加家务,例如,而孩子不是。我想知道实施这种设置的最佳实践是什么,包括: 一,。我是否应该为父母和孩子分别设置故事板和VCs?基本上,家长和其他屏幕的某些页面上应该有一些按钮和功能。 二,。这样做的最佳方法是在用户类中具有角色属性吗 三,。一般来说,对于一个用户(比如一个家庭)共享信息的应用程序,设计的最佳实践是什么 如果有人碰巧有任何关于这类事情的Swift示例代码,那么看

我正在构建一个应用程序,其中一些用户将比其他用户有更多的功能访问权限。其概念是,一些用户是家长,另一些用户是孩子,家长可以添加家务,例如,而孩子不是。我想知道实施这种设置的最佳实践是什么,包括: 一,。我是否应该为父母和孩子分别设置故事板和VCs?基本上,家长和其他屏幕的某些页面上应该有一些按钮和功能。 二,。这样做的最佳方法是在用户类中具有角色属性吗

三,。一般来说,对于一个用户(比如一个家庭)共享信息的应用程序,设计的最佳实践是什么

如果有人碰巧有任何关于这类事情的Swift示例代码,那么看看会很有帮助,因为我刚刚开始使用iOS。 提前谢谢。

总的来说

1) 不可以。如果两个页面之间只有很小的视觉差异,您应该隐藏/更改用户不应该看到的元素。如果用户需要特殊视图,只需在情节提要中创建该视图,并仅在适当时显示

2) 要执行上述操作,您可以在用户实体上拥有一个指示用户“类型”的属性,也可以基于角色拥有多个用户对象,并基于实体类型显示/隐藏UI元素

3) 这是一个非常广泛的问题,实际上取决于应用程序的大小和复杂性

所有这些都是非常普遍的。有许多因素可以决定这样做的最佳方式,包括:从何处导入或创建用户、数据的敏感性、不同类型用户或“权限集”的数量。

tl;博士 我对同一问题的解决方案:

  • 用户角色枚举
  • 用户类上的用户角色属性
  • 当前用户单例
  • 示例代码 讨论 我正在构建一个应用程序,与您分享挑战。受Decorator模式和/或面向协议编程的启发,我目前的想法是让一个用户角色枚举(由我的用户类上的属性持有)通过一个全局单例CurrentUser对象进行访问。每个屏幕(视图控制器、视图、您拥有的内容)都可以检查当前用户的角色,并做出适当的反应


    想法?

    非常感谢您的详细回复。如果我可以问,你知道如何显示还是不显示,比如说一个基于布尔值的UIButton?
    button.hidden=YES这是一个很好的待办事项列表示例,您可以查看一下,看看像家务列表这样的简单应用程序会是什么样子。它使用CoreData,我强烈建议您尽快学会使用。CoreData将是您在iOS设备上保存数据的最佳方式。以及Swift中的购物清单示例:
    
    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()
    }