Tag: 编程

iOS Swift教程-学习语言基础

Swift是一种非常容易学习的编程语言,因为其语法易于遵循。 在本iOS Swift教程中,我们将介绍一些Swift语言基础知识,并且我们将了解使用Swift编程语言进行开发的过程是多么容易。 在开始构建iOS应用之前,我们需要了解Swift语言的基础知识,并了解它们如何协同工作,然后才能构建所需的出色应用。 在本教程和所有后续教程中,我们将使用Swift 3。 定义变量 变量用于存储值,以后可以在程序中对其进行操作。 首先,让我们创建一个新的游乐场并保存。 然后清除所有游乐场内容。 要定义变量,请使用关键字var,后跟变量名称,如下所示: var myvar 您可以为变量使用任何名称,但不能以类似以下的数字开头变量名称: var 2myvar 上面的定义是不正确的,但是您可以包含如下数字: var myvar2 使用所需的任何变量名,但要具有描述性。 要为该变量分配值,请使用等号,如下所示: var myvar =“您好,LikeGeeks访问者,欢迎使用iOS Swift教程” 字符串插值 要打印字符串并包括其他类型的值,可以使用字符串插值\()进行如下转换: var var1 = 100 var var2 =“您好,我口袋里有$ \(var1)” var var2 =“你好,我口袋里有$ \(var1)” 您不仅限于字符串变量,还可以在Swift中定义不同类型的变量。 var var1 = true var var2 = 50 第一个变量var1是布尔类型。 您可以对布尔类型使用true或false。 第二个变量var2是整数类型,或者用Swift语言命名为Int。 在Swift中,您不需要键入变量类型,而该类型则是类型推断 。 Xcode根据提供的值检测变量类型,因此,如果在引号之间为变量分配值,则表示变量是字符串,如果键入整数作为值,则表示变量类型为Int等, 您可以像这样显式定义变量类型: […]

在Big Nerd Ranch迅速涉足:iOS Essentials训练营评论

免责声明:这不是赞助评论。 大书呆子牧场没有联系我做任何形式的认可。 所有表达的意见都是我自己的。 那不是夸张。 如果您确定要成为iOS开发人员,并且想学习Swift语言的基础知识以及如何在尽可能短的时间内智能设计iOS应用程序,那么Big Nerd Ranch的带有Swift Bootcamp的iOS Essentials就是您的最佳选择。 该课程将花费您$ 5200($ 4680,学生折扣)和整整一周的专心致志。 这是一笔不菲的金钱和承诺。 对我来说,这是值得的。 我借了一笔贷款,将偿还全部4680美元以及我飞往那里的356.39美元的利息。 实际上,我很高兴我必须偿还这笔款项。 这是达到更高,更聪明地工作而不是为了更少而满足的动机。 关于我的一些背景以及我决定参加该课程的原因:我是二十一岁的大学高级双学位,主修计算机科学和经济学,并且拥有两年的主要C语言风格的编程经验。 毕业后我想成为一名iOS开发人员,但是我的学校不提供任何Swift或移动开发课程。 我曾经进行过一次iOS开发实习,并意识到结束之后,我有足够的发展空间作为一名工程师。 我的雄心勃勃的目标是:不仅“学习更多Swift”并“成为一名更好的工程师”,而且真正了解语言,其习语,模式以及按原样设计iOS应用程序的原因 。 我度过了愉快的时光,可以坚定地说,我从这个密集​​而密集的一周中学到的东西比在整个学期的学期里学到的更多。 但是,我只能从课程中学到很多东西,因为我以前的编程经验(以及我的顾问,教授和同学的坚定支持)奠定了相当坚实的基础,并且我知道吸收这些东西对我有用并保留新信息。 不要期望参加,不花力气,而会成为一个知识渊博的开发人员-拿出自己所要投入的东西,尽管您总是会得到帮助,但没有人会牵着手课程。 环境 该课程在佐治亚州石山的万豪常绿会议度假村举行(或者至少是在艾尔玛决定让我们参观之前-以后再介绍她)。 我们的课程在酒店的其中一间会议室内举行,该会议室配有标准配置的书桌,投影仪和翻转板,供教员在上面写字。 有各种各样的小吃和冰箱,里面装有饮料,以防在上课时有人需要点心(相信我,我们做到了)。 我们住过的实际酒店房间超级好 。 我的大学生对“豪华”的定义是自己有一个睡觉的空间。 在Evergreen,我得到了一个带两张床的房间,一台电视,一个壁橱,一间私人浴室,以及我自己的阳台,可在酒店旁边欣赏湖泊的壮丽景色。 当您坐在室外并欣赏湖泊和高大的树木映衬在粉红色,蓝色和黄色的天空下时,日出时起床还不错。 房间,我们所有的饭菜以及往返机场的交通都包含在班费中,这意味着我不得不沉迷于酒店的自助式餐厅。 这里的食物可与其他餐厅媲美,工作人员非常友好和周到,而且我们还有一些保留的桌子供我们自己使用。 在整个星期的中途,飓风“艾尔玛”(Hurricane Irma)受袭,而常绿树失去了力量。 导航楼梯间到我的房间并在黑暗中洗个澡真是一次冒险。 班上有人告诉我们,我们将搬到佐治亚州莱诺克斯的JW万豪酒店。 这次,我的房间是第12楼的套房之一。 我有一张巨大的床和一间带两个镜子,淋浴和一个浴缸的私人浴室。 JW的会议室更宽敞,我们从菜单上点菜而不是选择自助餐。 班上有一些关于哪家酒店的设施更好的争论,但是我坚决支持JW。 我的意思是,什么时候我还能有机会在凌晨2点炸开Lana del Rey时享受豪华的沐浴并吃葡萄番茄? 班级规模/结构 该课程中只有一名讲师,一名助教和大约十二个人。 我们所有人都有大量的以前的编程经验; 大多数人已经作为开发商工作,并已被其雇主派往那里。 上课时间为上午9点,结束于下午6:30,分别有一个小时的午餐时间和30分​​钟的下午休息时间。 我们研究了Big Nerd Ranch […]

使用Xcode,Swift滑出菜单。

返回Main.storyboard,然后将导航栏按钮项拖到导航栏的左上方: 让我们给导航栏添加一个标题,转到Attributes Inspector并为您命名任意标题,在这种情况下,我将其命名为Slide Out Menu。 接下来,我将更改背景色,以便您可以在点击“滑动菜单”时注意到它。 您可以将颜色更改为自己喜欢的任何颜色,或者将其添加到另一个项目中,只需按原样保留颜色即可(在以下步骤中将了解原因)。 要更改背景颜色,请选择“ 视图”,然后转到“ 属性”检查器,然后选择“ 背景”以更改颜色。 到目前为止,它应该是这样: 由于我们希望用户能够点击“菜单”图标,因此我们需要调出一个可以与其交互的视图 。 接下来,我们将放置对象库中的视图 ,并将其放置在左侧导航栏的下方,如下所示: 现在,让我们在刚创建的视图上设置一些约束 : 我们还可以通过转到视图的“ 属性”检查器并单击“ 背景”来更改视图的颜色。 随便更改颜色。 就我而言,我选择了较深的颜色,因此在视觉上对用户有吸引力。 现在从对象库中拖动一个按钮 ,并将其放在我们刚刚创建的侧视图中。 PROtip-您可以添加任意数量的按钮,并且每个按钮都需要一个不同的ViewController(DUH!自我说明)。 不要忘记为所有按钮添加约束 : 是时候弄脏我们的双手了! 让我们添加一些代码,以便我们的用户可以与我们刚创建的所有内容进行交互! 听起来很有趣吧?! 好吧放手,转到您的ViewController.swift文件,并使用Control-drag选项并创建IBOutlet来连接侧面View的主要约束,如下所示: 让我们通过选择图标(在我的情况下是“汉堡菜单”图标)并将其拖动到“助理编辑器”中,为“ 条形按钮项”添加动作: 现在,我们创建一个变量来跟踪是否显示或不显示“滑出菜单”: var menuShowing = false (第13行) 在上图中,我们将菜单设置为在点击时显示,而在用户再次点击菜单图标时不显示。 现在,让我们变得更加时髦,并向“滑出菜单”添加动画: 这是滑出菜单的视频!

Swift中的JSON解析

我们通常使用JSON从Web服务发送和接收数据。 我们可以在Swift应用程序中轻松使用它。 大多数应用程序完全基于JSON 。 如果您的应用程序正在与Web服务API通信,则它将返回对Dictionary(Object) , Array , String , Bool , Number响应。 在创建模型类之前,我们需要牢记哪种类型的响应将来自Web服务,基于响应,我们将创建Model类。 在本主题中,将涵盖从基本到高级的大部分与解析相关的部分。 🚀 最初,对我来说了解JSON解析是一项艰巨的任务。 在那之后,我意识到这对我来说没什么。 它很容易使用。 只需要了解响应类型。 那就是主要的事情。 🙂 在开始代码之前,我们需要通过点击 浏览器 来检查我们的Web Api – 现在我们在Web浏览器中得到了响应 ,让我们在Xcode进行一些编码 创建用于JSON解析的新项目– 将项目的plist添加到内部作为源打开 将App Transport Security粘贴到项目的plist NSAppTransportSecurity < dict > NSAllowsArbitraryLoads </ dict > 现在使用URLSession针对网络API发出网络请求 我们通过Web API发出的请求正在处理数据,而Error将成为响应。 我在这里使用JSONSerialization内置的Foundation框架,它将JSON数据转换为Foundation 对象 。 在这一部分中,我使用了JSONPlaceholder中的测试API。 警卫让url = URL (字符串:“ https://jsonplaceholder.typicode.com/todos”), 否则 […]

基于Swift的建筑控件

(从2017年春季重新发布) 在2016年初,我们在PassiveLogic进行了一次有趣的实验,将一些C代码重构为Apple的新系统语言Swift。 这个实验项目证明是成功的,我们决定采取大胆的举动,用Swift重写我们的整个代码库。 为系统关键型启动采用一种新语言似乎是不寻常的举动。 这是一个经过仔细考虑的决定。 它表明,苛刻的现实是C和C ++的入门系统语言已接近中年。 在过去的几十年中,我们已经看到编程语言随着快速原型开发,Web和应用程序开发以及并行性和客户端-服务器体系结构日益复杂的需求而迅速发展。 相反,系统语言的发展非常缓慢。 这种保守性部分是其持久性的根源。 但是,极端保守主义不是技术行业或初创企业的业务。 在过去的十年中,周围的技术市场一直在寻求高级语言以提高开发速度和竞争优势。 代码成本 PassiveLogic在我们下一代控制平台的开发中越深入,越多的C和C ++像锚一样。 不仅仅是编码速度或程序员的满意……最终的决定对业务至关重要。 毕竟,初始编码实际上是受您的大脑而不是手指的速度的限制。 仅此一项就不是采取语言行动的理由。 我们的一名开发人员向我证明了这一点,他们远远超出了使用普通旧C语言编写的python程序员的能力-他是神话般的10X程序员,可以将其淘汰。 因此,语言效率很重要,但这不是最重要的因素。 实际上,语言选择中最重要的决定是业务决定。 因为编程的成本并没有随开发人员通常划定完成线的最初实现而结束,而是您认为:“我做到了”并达到最高五分。 不,代价是通过单元测试,调试,现场测试,查找生产中的所有极端情况以及下一个家伙今后几年必须承担的累积技术债务,与该代码建立长期关系。 即使您的初创公司渡过了死亡的尽头,也经常会看到公司因为产品陷入技术低迷而陷入困境。 它们在技术上可能会负债累累,以至于所有的工程资源都被浪费在寻找bug上,而不是为客户创造更多的价值。 我们都看到了它的发生。 为什么选择Swift 面临的挑战是如何使开发人员能够实现更大的业务目标? 输入Swift。 Swift是第一种真正解决市场空白的系统语言。 它的目标是成为编程三重奏: 高效的高级语言语法 固有的安全性 像C一样的低速C 前两个实际上是系统编程新手。 是的,随着时间的流逝,C ++确实一直在提高生产率,但是它并不能摆脱不良习惯,安全风险和不确定的行为。 仅以“ null”为例,根据分析,这会导致25%的软件错误。 在Swift中甚至不可能实现null陷阱。 如果添加诸如错误的类型转换,枚举不匹配,内存问题,不完整的案例陈述等之类的东西,那么……一家机器人公司发现,使用Swift甚至不可能发生40%的问题跟踪器中的错误。 有价值? 绝对。 但是效果可以成倍增加。 我看着一个年轻的程序员在C语言中为复杂的指针错误而苦苦挣扎了数周,试图确定他的单元测试。 那是大量的调试时间和脑力劳动,本来可以专注于富有成效的思维和周到的功能开发。 而且,由于C ++程序员的平均年龄只有40多岁,这一挑战变得更加严峻。 部分原因是语言的年龄,而聚会则是因为掌握该语言需要花费很长时间。 这为招聘年轻人才提出了入职挑战。 Swift并没有消除它,毕竟它是一种新语言,并且发展很快。 但是从结构上讲,它是一棵修剪整齐的树,与当前的计算机科学思维相一致,不仅与C系列非常相似,而且与现代脚本语言也没有太多相似之处……使它感到熟悉。 精明的开发人员寻找有趣的机会,例如学习先进的语言,这并没有什么坏处。 这些优势加上Apple的支持,在短短2年内将Swift推入了十大编程语言的前十名,其增长速度超过了历史上任何一种语言。 社区很重要。 […]

IOS编程。

面向初学者的Swift。 Objective-C是一种面向对象的编程语言,在C编程语言中添加了Smalltalk样式的OO层。 Objective-C用于为OS X和IOS操作系统创建应用程序。 最初,Objective-C是由NeXT针对其NeXTSTEP操作系统开发的,后来由Apple接管。 由于它是一种面向对象的编程语言,因此它支持四个支柱: 封装形式 资料隐藏 遗产 多态性 要了解更多信息,请单击上面的选项之一。 Swift是苹果公司于2014年发布的用于IOS和MAC OS开发的功能强大且直观的编程语言。 快速开发应用程序是交互式的,既有趣又语法简洁明了。 swift的新版本是Swift 4.2,于2018年9月17日发布,Swift 5预计于2019年4月发布。 要了解有关Swift的更多信息,请单击此链接。 快速打印“ Hello World!”的简单代码是: 打印(“ Hello World!”) 我们不需要导入任何库来进行输入/输出处理。 Swift代码是在全局范围内编写的,并且用作所有程序的入口点,因此我们不需要main()函数。 变量,常量和数据类型。 我希望每个熟悉变量,常量和数据类型定义的读者都可以。 要创建变量,请使用var关键字,并使用常量let。 例如: var myVariable = 20 让myConstant = 25 Swift支持以下数据类型: 数字(整数,双精度,浮点数…..) 弦乐 布尔型 列表(也称为数组或字典)。 正如我们在上面看到的,我们不必为Swift指定变量类型,因为它会自动检测值类型。 如果我们写myVariable =“ Hello”,它将不接受,因为它只能接受Integer。 并且使用常量,我们无法为myConstant赋予新值。 条件语句和控制流。 为了在Swift中做出任何决定,我们使用条件。 Swift支持不同的条件语句,例如if,if-else,while,do-while。 借助控制流程,您可以快速获得支持,例如,重复, 让我们看一下条件语句的每个示例: if 语句 :该语句用于检查条件是否与给定条件匹配。 […]

React Native一直很糟糕。

我一直在努力给React Native一个机会,这让我一直很失望。 最近有人对在React Native中使用我们的本机iOS和Android模块之一感兴趣。 这听起来很不错。 我们希望我们的代码尽可能有用。 我对React Native相当熟悉,但是有一段时间没有从头开始创建Native模块。 我着手整理文档。 这是iOS和Android本机模块的React Native文档。 两者都引用了React Native-Native Module Setup。 该文档指出启动本机模块的方式是 因此,官方的React Native文档会创建损坏的代码。 我尝试成为一名优秀的开源公民,所以我出发去寻找react-native-create-library的存储库并提交错误。 该错误已存在。 无法打开生成的iOS工作区#95,它已于2月前打开,截至4/10/2019。 在浏览此问题和其他问题时,我注意到该工具不是由Facebook React Native存储库提供的,而是由单个开发人员提供的。 我还发现了这个问题:这个项目死了吗? #106。 在撰写本文时,react-native-create-library作者尚未对这两个问题发表评论。 我不怪作者没有跟上该工具或没有对问题做出回应。 但是,如果此工具是创建本机模块的官方React Native方式,则应由React Native团队保持最新。 对于一个React Native大小的项目,我希望文档更加正确,而且不会那么明显。

Swift 4 Introduction系列1.3 — Swift基本数据类型

Swift鼓励程序员使用4种基本数据类型。 它们是String,Int,Double和Bool 。 字符串用于文本,整数用于整数, 双 精度型用于浮点数, 布尔型用于存储布尔值(真或假)。 除了4种基本数据类型外,我们还可以使用UInt表示的无符号整数和Float表示的较小浮点数 。 对于有符号和无符号整数,都可以将它们分解为位大小的整数。 一个八位带符号整数由Int8表示。 对于有符号整数,我们有Int8 , Int16 , Int32和Int64 。 同样,对于无符号整数,我们也有UInt8 , UInt16 , UInt32和UInt64 。 整数,浮点数和布尔值的实现与许多其他C类编程语言(例如C,C#或Objective-C)非常相似。 使用不同的编程语言,String的实现将有所不同。 在本文中,我们将介绍String的基础知识。 在本文中,我们还将介绍与其他编程语言不太相同的新数据类型。 元组是包含一组值的数据类型。 可以使用其他基本数据类型的组合来构造这些值。 我们可以将多个值组合成一个元组,并像处理单个变量一样传递多个值。 (提示:对于C编程,元组类似于struct)。 Swift还引入了一种称为Optionals数据类型的数据类型。 可选变量处理变量中没有值的情况。 它类似于Objective-C中的nil指针,但可选选项适用于所有Swift数据类型。 可选参数比Objective-C中的nil指针安全。 通过使用if语句和可选变量,Swift引入了一种称为可选绑定的编程技术,该技术可对所有变量进行安全检查。 可选绑定是Swift编程的关键功能之一。 整数 在Swift中, 整数是整数 。 整数数据类型仅接受整数。 例如,整数接受数字,例如54或57791。 整数可以进一步分为有符号整数和无符号整数 。 有符号整数接受负整数和正整数。 有符号整数的示例是57,-325和-54623。 无符号整数仅接受正整数,例如723和9394。 有符号整数用Int表示,无符号整数用UInt表示。 另外,Swift还提供位大小的整数。 UInt8表示大小为8位的无符号整数。 Swift提供了4个无符号位整数,它们是UInt8 , UInt16 , […]

Swift中的NotificationCenter

通知分派机制,可将信息广播到注册的观察者。 资料来源 –苹果文件。 在开始这个话题之前,让我们看看为什么需要这个? 在移动应用程序开发中,有时我们要实现一些要求,例如面向处理程序,将数据从一个类传递到另一类,调用任何其他方法或函数。 以前我写过关于代理模式的文章 ,这是两个类进行交流的最佳方式,但是委派对于广播单打或同时通知方法是无济于事的。 这是有关NotificationCenter的一些优点- 从根本上说,它有助于观察和广播单身人士从一个班级到多个班级。 将单身人士从一个班级发布到多个班级。 接收来自多个班级的单身人士。 让我们看看如何使用它– 编写您的 NotificationCenter 进行观察:– 接收器📡 NotificationCenter .default 。 addObserver (自我, 选择器 :#selector( loginSuccess ), 名称 : NSNotification .Name ( “ com.user.login.success” ) , 对象 :无 这是接收的通知注册过程。 基于密钥, NotificationCenter可以观察。 在注册NotificationCenter进行观察的过程中– NotificationCenter.default这是通知变量,如果您有更多通知,则可以在您的类中全局创建它。 addObserver(self, — —这是我们要进行观察者通知的类。 selector: #selector(loginSuccess) —这是方法名称,只要通知将收到此方法调用即可。 name: NSNotification.Name(“com.user.login.success”) —这是通知密钥🔑,对于任何新的通知注册方法而言,它应该是唯一的。 对于调用相同的方法,它应该是相同的。 该键🔑只能调用与我们注册为键🔑并锁定🔐相同的方法。 object: nil) —在对象内部,您可以传递任何对象或任何变量值( […]

使用Xcode启动屏幕反应本机iOS启动屏幕

这里的JavaScript开发人员使用React Native在移动开发世界中生活。 我从事过许多React Native项目(几乎在生产和生产中),并且在每个项目中,我都不得不沉迷于特定于平台的代码。 实际上不是太脏,只有一点点灰尘。 由于我最终甚至用很少的本机代码工作,所以我总是以react-native init AwesomeProject而不是create-react-native-app AwesomeProject来启动我的项目。 如果您使用create-react-native-app ,那么除非您决定“退出” React Native应用程序,否则将无法使用以下信息。 在这里更多。 您为什么要在Xcode中构建初始屏幕而不使用其资产目录? 有一些原因。 也许您不想处理所有这些屏幕尺寸的图像,然后又有新设备问世,迫使您为下一个版本重做/添加新尺寸。 也许您想使用本机代码添加某种特殊效果。 我之所以学到这一点,是因为我计划制作一个动画,并且想让自己的脚步进入iOS视图。 动画实际上变成了没有动画,但是尽管如此我还是学到了,现在我对Xcode更加熟悉了,所以对我来说是一个胜利。 说了这么多,如果您想走资产目录之路,那绝对很酷。 Spencer Carli(令人惊叹的React Native博客作者)写了一篇很棒的文章,介绍了如何使用iOS中的资产目录添加初始屏幕(他还包括Android的说明-奖励)。 我们从什么开始 当您首次在React Native中启动一个项目时,您会得到一个可爱的启动屏幕,在您的第一次运行中向您打招呼。 好消息是,他们已经为我们设置了LaunchScreen.xib,这将用于我们自己的品牌初始屏幕。 我们要去的地方 这就是我们要去的地方(圆圈和字母是您计划显示的徽标图像)。 在Xcode中查看屏幕 让我们在Xcode中看看我们所拥有的。 从左侧的主项目目录中打开子目录,然后最上面的一个通常与您的项目名称相同。 也打开那个,然后单击LaunchScreen.xib 。 这将打开右侧的外观。 我注意到的第一件事是一个正方形,看起来不像我正在开发的任何设备。 我喜欢更改视图,以便可以在各种设备中检查所有内容。 确保左栏中的View高亮显示。 在右侧栏上,单击最左上角的小图标按钮(从左数第四个按钮)(当您悬停时,它将显示“显示属性检查器”)。 将第一个下拉菜单从“自由格式”更改为“页面表单”。 我还要在这里设置背景颜色,方法是单击“背景”旁边的下拉列表,然后选择我的颜色。 这是一个视觉效果-左边是我们开始的地方,右边是您现在应该去的地方(具有选择的任何背景色)。 凉! 现在,我们可以通过单击底部栏中的任意设备查看初始屏幕。 删除React本机文本 React Native的默认启动屏幕仅使用文本,因此让我们摆脱它。 只需单击左侧栏中“ View下面的每个项目,上面带有文本字符(从我所见即为L ),然后使用键盘上的delete键。 因此,现在我们剩下的空白屏幕是我们选择的背景色。 让我们添加徽标。 将图像视图添加到LaunchScreen.xib 在左侧栏中选择“ […]