Tag: Swift编程

在Swift 4中构建餐厅查看应用程序-简介

接下来,该应用程序将从API加载餐厅数据,并将结果显示在列表中。 我们将使用Yelp API返回的数据为单元格设置样式。 我们不会在这里停止; 让我们制作一个细节屏幕,以提供有关餐厅的更多信息。 在这里我们可以显示一些照片,最重要的是地图。 那是该应用程序的精简版。 希望构建它之后,您就可以摆脱一些新技能。 首先,您将学习如何使用CoreLocation获取用户位置,如何使用Alamofire进行联网以及如何在屏幕之间传递数据。 最后,订阅频道以在新视频删除时接收通知。

使用Swift(Pre Swift 3)通过引用调用与按值调用

如果您是刚开始编程的人,没有太多的经验或对指针,地址和所有内存内容的了解,那么您可能会困惑于按引用调用(发生在类中)和按值调用(发生在结构中)。 如果您已经知道函数调用是什么,那么希望这对您有所帮助,使您在头脑中的区别更加清晰。 下面是显示内存和值差异的基本图。 物理内存地址是保存数据的位置。 该值就是该地址中保存的值。 了解这种差异很重要。 调用带有参数(或多个参数)的函数时,它可以采用值(整数,双精度型等)或引用(对象的实例)。 我们将从引用调用函数开始: 通过引用调用函数 当您有一个对象的实例,并将其分配给一个变量时,该变量实际上将保存该实例的物理地址。 因此,当您将其作为参数左右传递给不同的函数时,仅传递其地址比将整个对象移动更为有效,因为仅保存地址信息的变量所占用的存储空间比对象本身少(4个字节) (32位系统)和8位元组(64位系统)。 当变量的物理地址在调用函数时作为参数传递给函数时,可以说该函数是通过引用来调用的。 发生了什么事? 由于仅传递变量的地址,因此对该地址中的变量进行任何更改,该更改与调用函数时使用的变量相同! 因此,对变量进行的任何更改都会更改变量本身! 下面是一段代码和变量以及相关变量的地址的打印输出: 如您所见,当我们通过引用调用函数callMeByReference时,传递someNumber的地址,并在该函数内部更改该地址中的值时,它将更改someNumber的值,因为它是该地址中的变量! 在调用函数后打印出someNumber的值时,其值已更改! (即使函数不返回任何值) 通过值调用函数 但是,当您通过值调用函数时,会将参数复制(克隆)到内存的其他地址中。 即使给参数提供了与调用函数时使用的变量相同的名称,它也将是不同的变量(具有局部作用域,这意味着它仅在执行时才存在于函数体内) 为了证明我们的观点,请参见下面的代码和输出示例*: 所以,我们开始! 在将变量传递给函数callMeByReference及其地址0x0000000112097750之前,变量anotherNumber的值为3。 当函数具有参数anothermethod时,其值也为3,但其地址不同! 因为它与另一个Number不同,所以它只是一个克隆(代理人-布鲁斯威利斯的粉丝!!!)! 因此,即使我们更改参数anotherNumber的值,也不会更改函数外部的变量anotherNumber的值。 调用函数后,我们将输出anotherNumber变量的值和地址,但它们都没有改变,这证明了我们的观点! 我希望这可以帮助别人! *请不要很快就弃用“ var”参数。它们必须是一个常量(“ let”)。

准备Swift编码面试— [索引]算法和数据结构

大O和7步思维 1. 1.大O 1. 2. 7步思考 基于列表的集合 2. 1.数组 2. 2.链表 2. 3.堆叠 2. 4.队列/出队 2. 5.优先队列 树木1 3. 1.堆 3. 2.最大堆/最小堆 3. 3.细分树 3. 4.二叉索引树 3. 5.红黑树 3. 6.挖掘 3. 7.二进制搜索树 数学1 4. 1.排列 4. 2.组合 4. 3.素数 4. 4.鹰嘴豆科Seula 4. 5. GCD欧几里得算法 递归 排序 6. 1.气泡排序 6. 2.插入排序 6. 3.选择排序 6. 4.快速排序 6. […]

全面理解快速下标(第2部分)

因此,在本部分中,我将对带下标的示例进行更多说明。如果您错过了该部分,则为第1部分…… 介绍 : 下标只是从struct,class或enum中的列表或序列访问元素的快捷方式。 字典中的下标: 在字典中,当我们通过索引Index检索数据时。 在这种情况下,词典始终会抛出可选值。 由于该词典中不存在所需的密钥。 喜欢 : let simpleDictonaray = [“ Apple”:100,“ Orange”:130,“ Banana”:90] simpleDictonaray [“ Apple”] // 可选(100) 这个Dictionary抛出了optional(100),所以我们可以通过我们自己的下标来解决这个问题: 在这里,我们创建一个具有信息并具有下标的结构。 下标主体具有绑定临时变量newValue的值。如果info [key]具有值,则返回或返回0 正在访问: 这次, 今天的购物将不会提供可选的值。因为在其下标正文中,我们已经安全地展开了。 如果此实例没有所需的键,它将简单地返回0。 通用下标: 泛型下标与基本无异。只是类型是遗传类型。 如果我们用它创建实例并通过第三个括号访问,它将以基本下标的形式给出结果,如.. 下标中的多参数: 下标可以采用多个参数并进行计算,例如: 实例: 数组: 在Swift Array中实际上是一个通用的Struct。 其中有一个下标,为什么我们可以通过第三个括号访问元素?这是一个示例: 在这里,我们使用struct Array及其类型String来创建实例数组。然后在其上分配两个名称,并通过第三个括号[]来访问元素。CosArray Struct在swift库中的下标中具有以下内容: 公共下标(索引:Int)->元素 在Swift Array中,String Int和所有其他基本数据类型实际上是在struct中构建的。 保持摇摆不忘与朋友分享给我启发。

字符串和字符

字符串是字符的集合,例如“ hello world ”或“ my medium account ”。 Swift字符串实际上是String(Struct)类型。 可以通过多种方式访问​​字符串类型的内容,包括字符收集,按范围,计数获取子字符串等。通过在声明类型时选择常量(let)或变量(var)来管理字符串的可变性。 →String Interpolation:以字符串类型插入常量,文字,变量和表达式称为String Interpolation。 Swift字符串由独立于编码的unicode字符组成,因此我们可以在具有各种Unicode表示形式的字符串中使用任何字符。 注意: Swift String类型与NSString类桥接,因此我们可以在String类型上使用所有NSString方法和API 。 Swift String是值类型,因此在传递时,将字符串分配给另一个变量或常量,将创建一个新字符串。 因此,执行时会进行修改。 在后台,Swift优化技术会在需要时照顾复制功能,以提高性能。 字符串文字 是用双引号(“,”)包围的字符序列(集合)。 多行字符串文字:如果我们需要包含多行或多于一行的字符串,我们可以通过用三(3)个双引号(“””)包围的字符序列来创建该字符串。 如果不希望在字符串值中出现换行符,但是为了便于阅读而在源代码中需要使用换行符,则可以使用反斜杠(’\’)。 字符串中的特殊字符: \ 0→空字符 \\→反斜杠 \ t→水平制表符 \ n→换行 \ r→回车 \”→双引号和\’→单引号 任意Unicode标量,以\ u {n}形式表示:\ u {2665} →在字符串文字中使用引号: →字符串的初始化: 我们可以定义一个空的字符串变量,以便进一步与新值一起使用,也可以使用String默认初始化方法创建一个实例。 →使用角色: 我们可以使用字符类型来创建一个字符。 我们还可以使用for-in循环访问字符串中的所有字符。 我们也可以将char类型附加到现有的字符串类型上。 Unicode: Unicode是用于在不同书写系统中编码,处理和表示文本的国际标准。 Swift的String和Character类型完全兼容Unicode,因此可以从任何外部源进行读写。 在幕后,Swift使用Unicode标量,每个字符为21位数字。 Swift使用 扩展字素簇, […]

Swift入门!

众所周知,软件开发是当今世界的热门行业。 不断进行的技术创新和研究在软件开发领域创造了苛刻的大量工作。 每个月,大约有4000万人访问Stack Overflow(最大的程序员在线社区)以学习,共享和提高他们的软件开发技能。 根据Stack Overflow的统计,在这4000万人口中,有1680万人是专业开发人员和大学水平的学生。 根据全球每年超过64000名开发人员进行的年度Stack Overflow的2017年开发人员调查,移动应用程序开发人员占全职软件开发职位的23%。 在23%的移动应用程序软件开发职位中,有57.6%的人是iOS开发人员,他们为iOS,macOS,tvOS和watchOS开发应用程序,如下所示。 对iOS开发人员的需求背后的主要原因是其操作系统竞争性消费者在几乎每个国家/地区的市场份额。 例如,在美国最大的智能手机市场中,iOS销售额从37.1%增长到43.5%,这导致其他平台在1年内下降。 如下所示,在澳大利亚,英国,法国,意大利,西班牙和日本也观察到了相同的趋势。 这些因素导致开发人员对Objective-C和Swift(用于iOS开发的编程语言)的需求,使其始终如一地出现在TIOBE的图表上。TIOBE是一个索引,每个月都会发布流行的编程语言列表。 (在此处了解有关TIOBE的更多信息: https ://www.tiobe.com/tiobe-index/ ) 可以说,这些统计数据足以预测,未来几年对iOS工程师的需求也会增加。 但是,真正棘手且值得商bat的问题是选择Objective-C(成熟而又被通缉)还是Swift(轻松又新鲜)。 我认为,这取决于许多因素,因此建议使用iOS语言选择器确定下一个iOS应用程序的语言。 选择语言时要注意的关键是Swift是一种新语言,因此非常易变。 结果,将有很多更新可能破坏您的代码,并且免费资源也将受到限制。 因此,大型公司尚未切换到Swift。 但是为什么要学习Swift? 嗯,苹果正在推动Swift成为主要语言,并且可能在未来几年内,苹果将弃用Objective-C,这将增加对工具箱中配备Swift的工程师的需求。 因此,建议您跳入Swift,这既适用于老Objective-C熟练的开发人员,也适用于那些希望从iOS开发开始的人员。 为此,我创建了推荐的学习Swift的学习指南。 也将此酷技能添加到您的个人资料。 首先,您需要一台具有最新MacOS和Xcode的Apple机器。 之后,您可以依靠以下入围资源抢先一步。 1.苹果指南: 在这里,您将找到有关Swift的所有信息: https : //developer.apple.com/library/prerelease/content/documentation/Swift/Conceptual/Swift_Programming_Language/index.html 在这里,您将找到一个实际的案例,每节课都将逐步指导您创建一个简单,真实的iOS应用程序。 https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html#//apple_ref/doc/uid/TP40015214-CH2-SW1 有关全面的Xcode教程,请访问http://help.apple.com/xcode/mac/8.0/#/ 大量阅读,但它解释了所有内容! 2.斯坦福大学讲座: https://itunes.apple.com/in/course/developing-ios-10-apps-swift/id1198467120 很受欢迎,很好! 3. Raywenderlich.com教程: 查阅Swift一节,他们有各种基本的免费指南。 4. Udacity: 您还可以找到有关Udacity的各种免费课程。 https://www.udacity.com/course/swift-for-beginners–ud1022 https://www.udacity.com/course/swift-for-developers–ud1025 https://www.udacity.com/course/learn-swift-programming-syntax–ud902 5.来自Artsy的Swift视频课程: 在这里,您可以找到适合初学者的视频课程。 http://goo.gl/MegYAU http://goo.gl/WJLDbp […]

Swift 4中的自定义标签效果

在您的应用程序中创建自定义标签效果没什么大不了的,您可以在这里轻松地以自己的方式实现,这里我向您展示了UILabel extension一些示例。 在不使用任何Custom类的情况下,并且使用非常少且可重复使用的代码,即可轻松自定义任何标签。 为轮廓效果制作自定义标签 让strokeTextAttributes = [ NSAttributedStringKey。 strokeColor :UIColor。 红色 , NSAttributedStringKey。 前景色 :UIColor。 白色 NSAttributedStringKey。 strokeWidth : -4.0 , NSAttributedStringKey。 字体 :UIFont.boldSystemFont(ofSize: 30 )] 为[NSAttributedStringKey:任何] //在这里画轮廓 labelOutLine .attributedText = NSMutableAttributedString( 字符串 : “您的轮廓文本” ,属性: strokeTextAttributes ) 为UnderLine效果制作自定义标签 let attributedString = NSMutableAttributedString( string : “您的下划线文字” ) attributedString.addAttribute(NSAttributedStringKey.underlineStyle,值:NSUnderlineStyle.styleSingle.rawValue,范围:NSRange(位置:0,长度: attributedString.length )) //这里有下划线效果 labelUnderLine。 attributedText = attributedString

苹果商务聊天

Merhabalar,BuyazıdaWWDC 2017’detanıtılan商业聊天’tenbahsedeceğim。 商务聊天özelliğiniaslındauzunzamandırWhatsApp’tan bekliyorduk。 Ancak ilk olarak 2015 F8’de Facebook Messenger,现在已经可以使用。 Apple bu konularda hep biraz temkinli ve bu tarzgeliştirmelerisonradan getirmeyi tercih ediyor。 苹果商务聊天软件在市场上销售: Öncelikle商务聊天BE和一个BETA olarakaçılmışdurumda。 Ben de buyazıdailk olarak BETAsürümkurulumundan venasılgeliştirmeyapacağımızdanbahsedeceğim。 andu anda儿子发布edilmişiOSsürümü-11.2.6- oyüzdenilk olarak儿子betasürümüolan -11.3 BETA 3-sürümünükurmamızgerekli。 苹果酱β-内酯 基西米 成分肾上腺素gidip oradansertifikamızıcihazayüklüyoruzveardındanAyarlar’dan telefonungüncellemesiniyapıyorüüüüüüüüü11.m BETA 3 s。 Ardındanbeta版本Xcode 9 beta 3版本已通过indirmemiz gerekiyor。 Xcode 9.3 beta […]

App Makers / Day 1(Part 1)

。이커스프로젝트정정해서합니다합니다。 는이커스는iOS앱을실습하는로젝트입니다。 Xcode 9,iOS 11,Swift 4版本。 시작해볼까요? 您好,AppMakers! 아닌이커스프로젝트의아닌이아닌 ‘만들기’ 이지만,앱을로어쨌든합니다합니다。 는리고로그래밍을때, 您好,World 앱을보도록다。 를,Xcode실행합니다! (Xcode的있지면다면, Xcode的Xcode 를다。) Xcode的iOS发行版。 능한그래밍능한능한능한와스스스스스스스스스그램입니그램입니그램입니 그램 입니그램입니그램입니그램입니그램입니그램입니그램입니그램입니그램입니그램입니그램입니 그램 입니그램입니그램입니그램 입니 그램입니。 iOS 创建一个新的Xcode项目 。 Xcode플랫폼플랫폼 iOS iOS(iOS,watchOS,macOS,跨平台) 템플릿이나타납니다。 iOS만들려면iOS플랫폼에서 Single View应用程序 됩니다。 。지템플릿은다시보만들어다。 에지막으로위의이나오면이름을产品名称에,语言는Swift선택합니다。 组织名称,组织名称组织名称(组织名称)组织名称。 톺아보기 AppDelegate.swift Life리)이고,고기 (生命周期) 관리할다。 active이때,active이활성 (活动) 될가때,background이생명주 (背景) ,생명주이생명주기생명주기가다가다。 ViewController.swift Single View应用程序。 生命周期(生命周期) 있습니다할다。 […]

正则表达式支持Swift iOS

正则表达式(regex)làdùngcácmẫu模式tìmkiếmchuỗiđểtìmkiếmhoặcthaythếcácchuỗi字符串NSRegularExpression Cáctoántửcơbản –Kiểuboolean或dùng:| vídụ:cat | dog =>khớpvớikếtquảcó“ cat”hoặc“ dog” –Kiểugroup(nhóm)dùng:() vídụ:2(0 | 1)8 => 208,218 –Kiểuđịnhlượng ? :khôngcóhoặc1lünxuấthiệntrướcphầntửđó,vídụ:abc?d => abcd,abd * :khôngcóhoặcnhiềulnnxuấthiệntrướcphầntửđó,vídụ:abc * d => abd,abcd,abccd,abcccd + :khôngcóhoặcnhiềulầnxuấthiệntrướcphầntửđó,vídụ:abc + d => abcd,abccd,abcccd {n} :sốlầnxuấthiện,vídụ:abc {3} d => abcccd {min,} :最小化:abc {2,} => abccd,abcccd,abccccd {min,max} :sốlốnxuấthiệntừmintớimax:abc {1,2,3} => abcd,abccd,abcccd ^ :Bắtđầucủakítự,Vídụ:^ A => An B $ […]