iOS迭代中随机数问题及处理

释放双眼,带上耳机,听听看~!

项目迭代需求中有这么一条,在首页中有一个 今日任务 的界面,今日任务对于所有用户来说是唯一的,当 今日任务 完成后会变成随机任务,而在随机任务当中又有可以刷新的按钮。

 

在原有程序中,今日任务是在首页中json文件获取,然后向任务详情页发送一个taskId,然后通过taskId获取任务详情页需要的相关数据。

但在新的需求中,对于随机数如何获取,是在前端还是在后端获取,我与后端争论了起来。
由于后端并不需要纪录有关随机数的相关字段,我想的随机数从前端生成,通过判断今日任务的状态是否完成,如果完成则向详情页传递过去一个随机数,如果没有完成加载接口中的数据。在详情页刷新中也是如此,生成随机数然后refresh当前界面。

可是这样有一个问题,在任务记录表中并不是连贯的数据(有些数据已被被删除),并且在数据库表日后更新后获取数据仍然是当前的随机值,要想更新只能更新当前的app版本。

后端则认为服务器的产生在服务端。由服务器判断完成状态然后传递taskId,然后第二个界面始终加载taskId,不需要做任何改动。但是在第二个界面刷新中无法完成,服务端想要增加新的接口专门用来刷新使用,传递值为完成状态,然后返回详情页所有的数据。

但是这种方法是行不通的,在之前版本中很多复用刀详情页的地方,若是新的接口会使得之前的部分工作无法进行,若是判断数据再采用哪个接口进行大大增加了前端和后端的工作量。但是随机数在后端产生也有好处,就是后端可以从表中读取一个数,并且能够更新新的数据,这个在前端无法办到。

在讨论之后,我们得出一个好的解决方案,保持了两个接口的内容不变。客户端判断任务是否为完成还是未完成的状态,若是完成则在到详情页发送taskId=-1,否则发送正常的taskId。在详情页接口中,如果受到的是-1服务端会生成一个随机数然后返回里面的数据,否则返回taskId里面的数据。在点击刷新按钮时也会将taskId=-1然后refresh当前界面,这样在两端所做的工作量都不是很大,又能很好的解决上面的问题。

项目迭代真的是件有意思的事情,既要在原有的功能上做更多的扩展,又要尽可能的使用原有的逻辑。在解决问题上,总能遇到奇葩且又很有趣的答案。

人已赞赏
iOS文章

iOS教你改变UITextFiled的placeholder颜色

2020-5-20 6:46:58

iOS文章

iOS NSNumber比较大小

2020-5-20 8:01:50

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索