【问题标题】:iOS User Roles Best PracticesiOS 用户角色最佳实践
【发布时间】:2015-03-22 01:42:18
【问题描述】:

我正在构建一个应用程序,其中一些用户将比其他用户拥有更多的功能访问权限。这个概念是一些用户是父母,而另一些用户是孩子,例如,父母可以添加家务,而孩子则不能。我想知道实施这种设置的最佳实践是什么,包括:

1。我应该为父母和孩子提供单独的故事板和 VC 吗?父母的某些页面上基本上应该存在一些按钮和功能以及其他屏幕。

2。最好的方法是在用户类中有一个角色属性吗?

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

如果有人碰巧有任何此类事情的 Swift 示例代码,那么在我刚开始使用 iOS 时,看看会很有帮助。

提前谢谢你。

【问题讨论】:

    标签: ios swift uiviewcontroller storyboard


    【解决方案1】:

    一般来说,

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

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

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

    所有这些都是非常笼统的。有许多因素可以确定执行此操作的最佳方式,包括:从何处导入或创建用户、数据的敏感性、不同类型用户或“权限集”的数量。

    【讨论】:

    【解决方案2】:

    tl;博士

    我对同样问题的解决方案:

    1. 用户角色枚举
    2. 用户类的用户角色属性
    3. CurrentUser 单例

    示例代码

    enum UserRole {
        case Admin
        case FremiumUser
        case PayingUser
    }
    
    struct User {
         var name = "J. Doe"
         var roles = [UserRole]()
    }
    
    class CurrentUser {
        // Singleton pattern
        static let sharedUser = CurrentUser()
        private init() {}
        var user = User()
    }
    

    讨论

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

    想法?

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2017-02-04
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多