swift语言

swift基础知识学习

狂风中的少年 提交于 2020-02-25 12:59:08
用let来声明常量,用var来声明变量 声明变量: var x = 0.0, y = 0.0, z = 0.0 var welcomeMessage: String 常量和变量的命名 你可以用任何你喜欢的字符作为常量和变量名,包括 Unicode 字符 常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。 一旦你将常量或者变量声明为确定的类型,你就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,你也不能将常量与变量进行互转。 注意:如果你需要使用与Swift保留关键字相同的名称作为常量或者变量名,你可以使用反引号(`)将关键字包围的方式将其作为名字使用。无论如何,你应当避免使用关键字作为常量或变量名,除非你别无选择 println 输出的内容会在最后换行 (另一种函数叫print,唯一区别是在输出内容最后不会换行。) println函数可以输出更复杂的信息。这些信息可以包含当前常量和变量的值。 Double表示64位浮点数 Float表示32位浮点数 Swift 是一个类型安全(type safe )的语言, Swift 会使用类型推测(type inference)来选择合适的类型,编译器可以在编译代码的时候自动推测出表达式的类型。原理很简单,只要检查你赋的值即可。

IOS入门之Swift语言(一)

末鹿安然 提交于 2020-02-25 12:57:02
  经过不断的努力,小哥也买了台苹果设备,终于可以开始我的IOS之旅了,说来确实令人苦恼,为了学习IOS我这着贫农阶级,省了几个月的零花钱,外加向亲朋好友求救,最终痛下心扉,卖了台MAC pro128G版。苦逼的事情就不在多说,下面聊一聊,初次使用的心得体会,IOS的做工确实没说的,铝合金的机身,看上去就很显身份,用起来确实流畅,而且附带了很多有趣的应用,其中最让我惊奇的是段视频制作软件,提供了很多模板,让我制作小视频方便了很多。其次就是它的多手指操作了,炫酷的很,不过初次拿到本本时,确实很头疼,不想win那样只要会点就行了,总的来说,用着就是爽。闲话不多说,下面开始我们的Swift语言学习。   我们都知道,苹果公司最早使用Object-C来开发苹果应用,现在苹果公司对Object-C进行改进,退出了Swift语言,我相信在不久的将来Swfit必定取代Object-C成为IOS开发主流语言,废话不多说,下面开始我们的Swift之旅。   首先说明一下我使用的Xcode的版本,我使用的是Xcode7.0版本,相对6.0语法上应该是有一定的调整,大家知晓。 1、创建工作空间   打开我们的Xcode,然后点击左上角File->new->workspace:    2、创建Swift应用   这里为了方便,我们以创建os etc项目来做入门学习。创建我们的应用时,语言一定选择Swift

Swift - 异常处理

你说的曾经没有我的故事 提交于 2020-02-22 09:19:16
Swift 对 Error Handling详解 苹果官方文档解释 跟其它语言一样,Swift的异常处理是在程序抛出异常后的处理逻辑。 Swift提供了一流的异常抛出、捕获和处理的能力。跟Java语言类似, Swift的异常并不是真正的程序崩溃, 而是程序运行的一个逻辑分支;Swift和Java捕获异常的时序也是一样的。当Swift运行时抛出异常后并没有被处理, 那么程序就会崩溃。 在Swift语言中使用Error表示异常, 作用同Java的Exception类或Object-C的NSError类。 苹果建议使用枚举作为异常类型(为什么不推荐用类或者结构体?答案是枚举数据类型本身就是分成若干种情况,很适合做逻辑分支判断条件)。 enum VendingMathineError: Error { case invalidSelection case insufficientFunds(coinsNeed: Int) case outOfStack } 上面声明了枚举类型VendingMathineError,继承于Error。 注意Swift的所有异常类型都继承于Error, 就像Java所有异常类都继承于Exception一样。 类似于Java处理异常的try/catch/finally, Swift提供了 try、try?、try!、catch、throw、throws

iOS - Alamofire 网络请求

感情迁移 提交于 2020-02-21 05:45:15
前言 Alamofire 是 Swift 语言的 HTTP 网络开发工具包,相当于 Swift 实现 AFNetworking 版本。当然,AFNetworking 非常稳定,在 Mac OSX 与 iOS 中也能像其他 Objective-C 代码一样用 Swift 编写。不过 Alamofire 更适合 Swift 语言风格习惯(Alamofire 与 AFNetworking 可以共存一个项目中,互不影响)。Alamofire 取名来源于 Alamo Fire flower。 Alamofire 的核心主要是试图简化 iOS 中 HTTP 网络连接,它通过使用 NSURLSession 以及 Foundation URL Loading System 来创建一个 Swift 本地的网络访问接口,从而实现令人难以置信效率的任务。 1、Alamofire Alamofire 功能: Chainable Request / Response methods URL / JSON / plist Parameter Encoding Upload File / Data / Stream Download using Request or Resume data Authentication with NSURLCredential Progress Closure &

[Swift]LeetCode225. 用队列实现栈 | Implement Stack using Queues

筅森魡賤 提交于 2020-02-08 09:36:23
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝( https://www.cnblogs.com/strengthen/ ) ➤GitHub地址: https://github.com/strengthen/LeetCode ➤原文地址: https://www.cnblogs.com/strengthen/p/10204324.html ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。 ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创! ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. pop() -- Removes the element on top of the stack. top() -- Get the top element. empty() -- Return whether the stack is empty. Example: MyStack stack = new MyStack();

文顶顶iOS开发博客链接整理及部分项目源代码下载

心已入冬 提交于 2020-01-31 05:08:54
网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找。如果你是初学者,在学习了斯坦福iOS7公开课和跟着文顶顶的博客做项目之后,最快只需要2个月时间,就基本可以独立完成iOS App的开发工作。有经验的开发者也可以在该博客中寻找代码片段进行学习借鉴,必有所收获。 在此也向@文顶顶 表示严重感谢! 源码请加群539156631下载 由于文顶顶博客博文繁多,每次找文章需要频繁的翻页,故专门整理了跟iOS开发的全部链接,方便快速查阅。 OC语言前期准备 - 文顶顶 - 博客园 OC语言基础知识 - 文顶顶 - 博客园 OC方法和文件编译 - 文顶顶 - 博客园 OC内存管理 - 文顶顶 - 博客园 OC面向对象—封装 - 文顶顶 - 博客园 OC面向对象—继承 - 文顶顶 - 博客园 OC面向对象—多态 - 文顶顶 - 博客园 OC点语法和变量作用域 - 文顶顶 - 博客园 OC语言@property @synthesize和id - 文顶顶 - 博客园 OC语言构造方法 - 文顶顶 - 博客园 OC语言类的本质和分类 - 文顶顶 - 博客园 OC语言description方法和sel - 文顶顶 - 博客园 foundation框架—结构体 - 文顶顶 - 博客园

《Swift 权威指南》简单纪要

我怕爱的太早我们不能终老 提交于 2019-12-29 21:23:51
《Swift 权威指南》简单纪要 作者:李宁 Swift 的作者 Chris 在硕士毕业时提出了一套完整的运行时编译思想,奠定了 LLVM 的发展基础。 从 OS X 10.9 和 Xcode 5 开始,LLVM+GCC 已经被替换成了 LLVM+CLang 。 Swift 虽然本身是静态语言,是一门类型安全的语言,但其吸取了很多编程语言的优点,同时具备了很多动态语言的语法特性和交互方式。 在实际使用时,你能真切的感觉到其的灵活性,但是过于灵活真的好么?有时候,选择太多,反而会使整体代码显得杂乱。 在其他语言中,函数要返回多个值,则需要返回一个对象或结构体指针,而在 Swift 中可以通过返回 元祖 来实现多个值的返回。 可选变量的引入解决了大部分需要显示处理的异常,这部分工作由编译器完成。 很难说这个类型的使用简化了编程,你需要对所有可能为空的变量进行判断,然后决定是否使用。如果强制解包的时候,变量意外为 nil ,那同样为产生异常。 当 Swift 编译器在检测到数组中的的所有元素类型都相同时,就会将变量或常量类型设为 Swift 中的数组类型 Array ,否则,则设为 NSArray 类型。这种套路对于 Dictionary 和 NSDictionary 同样适用。 如此,便可以理解为何不能使用 as 将 [Any] 转为 Array 类型了。 var test

[Swift]LeetCode338. 比特位计数 | Counting Bits

旧街凉风 提交于 2019-12-28 10:40:20
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝( https://www.cnblogs.com/strengthen/ ) ➤GitHub地址: https://github.com/strengthen/LeetCode ➤原文地址: https://www.cnblogs.com/strengthen/p/10262072.html ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。 ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创! ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array. Example 1: Input: 2 Output: [0,1,1] Example 2: Input: 5 Output: [0,1,1,2,1,2] Follow up: It

Swift - 2.3的代码到3.0的转变

徘徊边缘 提交于 2019-12-24 19:20:03
分享一下学习新语法的技巧: 用Xcode8打开自己的Swift2.3的项目,选择Edit->Convert->To Current Swift Syntax… 让Xcode帮我们把Swift2.3的代码转换为Swift3.0。 手动调出Xcode自动转换Swift2.3 到 Swift3.0 弹出语言版本选择界面,选择Covert to Swift3,Next: AAB5FC3D-3EF2-43D5-9328-C00E33B3109D.png 进入选择模块界面: 选择模块界面 建议只选择自己创建的模块,第三方框架的模块最好不要使用Xcode来转换,等待第三方作者更新。 进入转换界面: 转换界面 不要着急Save,在这个界面中详细的列出了各个语法具体变化,我们可以利用这个界面来快速学习自己项目中遇到语法变化。 好了,下面给大家分享一下我的遇到的语法变化。 常用类及方法的Swfit风格化 UIColor 将常用的标准颜色写成了只读属性,不再是方法,调用方法改变。 Swift 2.3 UIColor Swift 3.0 UIColor Swift 3.0 和 Swift 2.0 写法对比 Any和AnyObject 这两个类型都是Swift中很早就出现的类型,但是我们经常使用AnyObject,很少使用Any。 AnyObject类似于OC中的id类型,表示任意的class的实例对象

Swift - 懒加载(lazy initialization)

落爺英雄遲暮 提交于 2019-12-24 19:03:46
Swift中是存在和OC一样的懒加载机制的,在程序设计中,我们经常会使用 懒加载 ,顾名思义,就是用到的时候再开辟空间 懒加载 格式: lazy var 变量: 类型 = { 创建变量代码 }() 懒加载的写法本质上是定义并执行一个闭包 // 含义: 当dataList被使用到时, 就会执行等号后面的闭包 // 所以等号后面的闭包的()是必须写的, 如果不写就会报错 // 注意点: 如果写懒加载, 那么修饰符必须用var lazy var dataList:[String] = { print("我被加载了") return ["lnj", "lmj", "zs"] }() lazy var satatuses: [String] = self.loadStatus() func loadStatus() -> [String] { print("我被加载了") return ["lnj", "lmj", "zs"] } // 懒加载 private lazy var inputeTextField: UITextField = { let inputeTextField = UITextField () inputeTextField. keyboardType = . NumberPad /* 8 种键盘风格: UIKeyboardTypeDefault, // 默认键盘