Tag: 挑战

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

视力: 更少的代码,更少的错误,更少的测试用例 任务: 通过在极端情况下减少每种情况下的项目代码,减少错误的可能性并提高可伸缩性。 挑战是什么? 您是否曾经考虑过为整个项目只编​​写一次表视图委托和数据源? 一旦您完成了在一个位置编写代码的工作,即实现数据源和创建表视图的委托方法,就不需要在整个项目中实现数据源和表视图的委托的视图控制器,就必须在一个位置编写仅放置一次并使用很多次,当您将使用不同的单元设计开发新的屏幕时,不需要任何条件或修改。 您的可重用代码也必须可在其他项目中使用,而无需任何修改或条件。 您的解决方案必须是框架级别的解决方案,而不是项目级别的解决方案。 您无需在此处创建框架,但我的上下文是,您不能限制用户使用他/她自己的现有基类(如果他/她已经在项目中),例如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 — Swift编程— 21天挑战赛– Elliott Diaz –中

#2 — Swift编程— 21天挑战 随着我对软件开发精通的渴望的增长,我不断感到自己应该掌握基础知识,开发更多的实践项目来提高我对计算机编程/软件开发的技能和理解,并每天在该领域中不断前进,成为相关的。 如果我在19岁的时候没记错的话,Swift是我选择在2015年底的swift 1.2上学习的第一门编程语言。从那时起,swift发生了巨大的变化,似乎我一直在反复学习所有东西。只是为了介绍基本知识,而不是真正了解事物的总体情况。 因此,我为自己和任何想要尝试自己学习成为专业iOS开发人员所必需的人的人都构成了挑战。 该项目将基于我刚刚发现的Udacity帖子来弄清楚应该把重点放在哪里,这就是我的想法。 简短而甜美而富有挑战性。 并非旨在完善主题,而是更多地介绍和理解主题的含义并进行实践。 正如我所听到的,没有完美的方法来创建程序,我将简单地攻击主题,学习它并继续进行下一个项目。 挑战时间:21天 方法: 3天让自己沉浸在主题中。 第一天=研究/组织将学到的东西 第二/第三天=专注于挑战 每天1个小时分配给此挑战 目标:对成为一名熟练的iOS开发人员需要有深刻的了解。 第1至3天:概述基础知识-Swift 3语法 第4-6天:项目目的-使用github 第7–9天:项目目的-建立对直观用户界面的理解 第10–12天:项目目的-了解设计模式:MVC-委托-通知 第13-15天:项目目的-了解联网 第16–18天:项目目的-核心数据 第19-21天:项目目的-中央车站调度 供参考的是udacity博客文章的链接: 成为iOS开发人员需要具备的7种技能 在iOS中要学习的东西很多,以至于只需跳过基础知识而跳到编程的不同领域就变得非常容易。 我已经做了一年多了,并且一直觉得,如果我花大量的时间学习基础知识并构建简单快速的项目,那么我所做的一切将比以前容易十倍。 用代码行衡量编程进度就像按重量衡量飞机建造进度。 – 比尔盖茨

如果在Swift中a == 1 && a == 2 && a == 3

今天,我发现了有关采访的一个非常有趣的话题,其中一位前端开发人员参加了。 问题是:该陈述是否可能等于true? 嗯…起初我就像.. 如果有人看到那样的话,他们会在大学里杀死我的! 但是然后……嗯,这不是我第一次看到有人在产品上写这样的代码…… 向下滚动之前,请花点时间仔细考虑一下如何做😉 您知道他们在说什么,“没有什么是不可能的”。让我们用一些好的方法来阐明这个话题! 好的,现在让我们尝试在变量声明中覆盖getter。 哦……对吧……这会给我们造成麻烦…… 这种思维方式并不完全有害……我们可以创建另一个变量b ,在访问a的getter时将对其进行递增。 而且有效! 我们可以尝试对自定义类型进行实验并覆盖等号运算符,但这将导致相同的逻辑。 让我给你演示。 现在是真正的徒的版本 ,仅用于满足要求。 它可以工作,但是很好……它仍然需要更多的逻辑\ _(ツ)_ / 它将混合您项目中所有整数的逻辑,因此使用此类方法时要小心! 尽管如此,我们还是提供了正确的答案! 尝试用您知道的其他语言来实现类似的功能,这将有助于提高您的技能,使您在接受采访时更加自在! 您如何看待这种面试问题? 是否太具体而无法包含在问题集中? 请分享您的意见! 🙂

Swift的100天-整合IV

我完全同意Paul的观点:100天的时间差不多快到一半了,困难在增加,是的,每天我们都需要更多的时间。 我很真诚,这是第42天的结束,我现在开始面对第41天。我很确定我会超越第100天完成任务,因为我真的很难每天有一个完全免费的时间来集中精力在此基础上,加上写作,我学会了不迷路。 让我们看看进展如何! 我们学到了什么? 很多东西! 现在我的主要奋斗是:我什么时候应该使用什么? 也就是说,何时使用Data(contentsOf:)何时从磁盘加载内容,何时使用FileManager进行Bundle ……我想只有经验能证明这一点。 我们了解了标签栏控制器,并且其中的每个项目都由标题和图标表示,我们使用Data加载了URL ,因此解析了JSON 。 我们设法使WKWebView生锈,无法以表格视图显示Web上的某些内容 ,让我们看了一眼HTML的世界(不是我喜欢的!),并学会了如何在代码中设计接口。 我们向我们的武器库添加了属性观察器 ,以及如何在设备上对多线程工作流进行编程。 还有更多…… 重要要点 enumerated() 当我们要遍历数组并不仅使用其元素而且使用它们的索引时,可以在数组本身上使用enumerated()方法。 让我们看一下该方法的描述: 让我们看一下返回类型是什么: EnumeratedSequence 。 在文档中,此类型嵌套在“ 集合”>“支持类型”内 ,并被描述为序列或集合的元素的枚举 。 要在数组上调用此函数,我们必须使用一个元组 ,无论如何返回的都是String 。 从文档中查看以下示例: var s = [“foo”, “bar”].enumerated() for (n, x) in s { print(“\(n): \(x)”) } // Prints “0: foo” // Prints “1: bar” 物业观察员 这些巧妙的代码段使我们可以在属性更改时运行一些代码。 […]