编写一次-在整个项目中随处使用,无条件-无修改

视力:

更少的代码,更少的错误,更少的测试用例

任务:

通过在极端情况下减少每种情况下的项目代码,减少错误的可能性并提高可伸缩性。

挑战是什么?

您是否曾经考虑过为整个项目只编​​写一次表视图委托和数据源?

一旦您完成了在一个位置编写代码的工作,即实现数据源和创建表视图的委托方法,就不需要在整个项目中实现数据源和表视图的委托的视图控制器,就必须在一个位置编写仅放置一次并使用很多次,当您将使用不同的单元设计开发新的屏幕时,不需要任何条件或修改。 您的可重用代码也必须可在其他项目中使用,而无需任何修改或条件。

您的解决方案必须是框架级别的解决方案,而不是项目级别的解决方案。 您无需在此处创建框架,但我的上下文是,您不能限制用户使用他/她自己的现有基类(如果他/她已经在项目中),例如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可以从您提交的解决方案中询问您问题。