我对ios dev有点新意,如果用户已获得访问令牌授权,我正在尝试禁用按钮。我只是不知道是否有一种干净的方式。现在我在viewWillAppear中检查了调用api客户端对象isAuthorized:它返回一个bool并将按钮设置为yes / no。在isAuthorized中,如果存在访问令牌,我会进行测试http请求,但由于我必须等待完成块,因此时间关闭,按钮在不应该被禁用时被禁用。我应该设置NSNotification还是应该在viewWillAppear中而不是在客户端中进行测试http请求?或者有更好的解决方案吗?
由于
答案 0 :(得分:1)
首先,好的是您的视图控制器只与“客户端”对象进行通信,并且客户端对象与服务器进行通信。这是正确的布局。现在如何设计UI部分:
您的客户端对象需要内部意义上的“我的授权是当前的吗?”这可能意味着它已经检查了一次,或者在最后X分钟检查了它。取决于你的情况。
当您致电isAuthorized
时,如果身份验证不是最新的,您会立即返回NO
然后提出请求。
当请求进入时,您拨打setAuthorized:
,这将发布KVO通知。
您的视图控制器KVO会观察isAuthorized
并根据需要更新按钮。 (或者,您可以使用委托方法或通知。)
如果您想区分“未授权”和“我不知道”,只需创建3选项枚举和方法authorizationState
而不是isAuthorized
。