编写一次-在整个项目中随处使用,无条件-无修改
视力:
更少的代码,更少的错误,更少的测试用例
任务:
通过在极端情况下减少每种情况下的项目代码,减少错误的可能性并提高可伸缩性。
挑战是什么?
您是否曾经考虑过为整个项目只编写一次表视图委托和数据源?
一旦您完成了在一个位置编写代码的工作,即实现数据源和创建表视图的委托方法,就不需要在整个项目中实现数据源和表视图的委托的视图控制器,就必须在一个位置编写仅放置一次并使用很多次,当您将使用不同的单元设计开发新的屏幕时,不需要任何条件或修改。 您的可重用代码也必须可在其他项目中使用,而无需任何修改或条件。
您的解决方案必须是框架级别的解决方案,而不是项目级别的解决方案。 您无需在此处创建框架,但我的上下文是,您不能限制用户使用他/她自己的现有基类(如果他/她已经在项目中),例如UIViewController和UITabelViewCell的基类。
您不得限制用户访问Apple的UIKit提供的API来创建表视图或表视图单元格,应允许用户使用纯代码或XIB或情节提要创建表视图或单元格。
用户-正在使用您的可重用组件的用户
在常规编码中,每当在视图控制器中确认UITableViewDatasource
时,编译器都会要求您提供两个必需的方法cellForRowAtIndexPath:
和 numberOfRowsInSection:
如果您错过了这两种方法中的任何一种,则会出现编译时错误。 您的可重用组件必须允许用户在需要时无限制地在view controller
手动编写委托和数据源方法。
这意味着如果用户只想编写cellForRowAtIndexPath:
具有自定义逻辑且未实现numberOfRowsInSection:
如果用户想要在cellForRowAtIndexPath:
自定义逻辑,则该方法必须起作用cellForRowAtIndexPath:
只要。 同样,所有UITableViewDelegate
方法也是如此。
不允许使用闭包或块或obj-c运行时 , 它只能通过委托模式来实现。
开始考虑挑战。
如何参加这项挑战?
推动自我,学习新事物并成为赢家。
1.只需填写此Google表单: https : //goo.gl/forms/zj2YrQu3H1LTbEKw2
2.为您的解决方案提供适当的步骤或Readme.md,因此我可以通过创建新的视图控制器,新的单元格和新的数据模型或字典来测试您的组件,从而对其进行测试。
3.解决方案提交: https : //goo.gl/forms/RIgCO1EAqmHgPGPN2
优胜者的奖金是多少?
获奖者将获得151.00 USD的奖金。
可能会增加到200.00 USD或更多,具体取决于参与者和获胜者的总数。
如果将有不止一名获奖者,我将按获奖者人数分配奖金。 如果有两名获胜者,则奖金为151.00美元 ,则每位获胜者将为151/2美元或更多 。
获奖者将如何获得奖金?
- 贝宝
- UPI付款
- Paytm | 免费|电话支付| G Pay(Google pay)应用
- 银行账户
- 亚马逊支付
- 您也可以建议您的首选方式
注意:
对于收费交易,交易费用是奖金的一部分。 例如,交易费用为2.00,如果价格为2000.00,则获胜者将获得1998.00。
如果我对这项挑战的要求不清楚,该怎么办?
请写电子邮件至hitendra.developer@gmail.com 主题为“QUERY — Write once — Use every where in whole project, no conditions — no modifications”
,我将在同一主题中回复您。
免责声明:
Hitendra Solanki保留对上述挑战的提及要求进行任何更改的所有权利,只是为了使要求更加明确。 Hitendra Solanki也可以增加奖金,但不能低于99.00 USD或等值货币。 如果需要,Hitendra Solanki可以从您提交的解决方案中询问您问题。