// // ViewController.swift // 可选项的判断 // // Created by 思 彭 on 16/9/16. // Copyright © 2016年 思 彭. All rights reserved. // import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // demo1(x: 20, y: nil) de…
本篇文章翻译自:http://ericcerney.com/swift-guard-statement/原作者:ecerney该语法为swift2.0之后添加的新特性 最开始在Apple的Platform State of the Union看见swift的guard语句的时候,我当时不太理解以后会有什么理由能用到它.这个语句的介绍如下: 与if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行.与if语句不同的是,guard只有在条件不满足的时候才会执行这段代码.你可…
//用if let与guard let实现同一效果,会发现guard降低一个分支 //可以用if var guard var 表示定义的变量能修改值 func test(){ let name:String? = "张三" if let a = name { print(a) }else{ print("李四") } guard let c = name else { print("李四") return } print("c=\(c)…
不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进行强制解包.举个例子,我在 OC 中定义这样一个变量: @property (nonatomic, copy) NSString *foo; 它转成 Swift 就变成了这样: var foo: String! 这样看上去合情合理.Swift 中有 String? 和 String! 两种形式,但 OC 中没有 NSString?…
从强制解包看 Swift 的设计 不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进行强制解包.举个例子,我在 OC 中定义这样一个变量: @property (nonatomic, copy) NSString *foo; 它转成 Swift 就变成了这样: var foo: String! 这样看上去合情合理.Swift 中有 String? 和 String! 两种形式,但…
Swift中字符串转化为Class的方法 在开发中有时候会根据字符串进行对应类的转化,这样我们就可以动态根据服务器返回的字段,动态的加载类,比如优酷,微博等APP会在节假日等动态的TabBar.这样可以把苹果审核的风险给排出. 在OC中根据一段字符串转化为类,可以很方便的进行,只需要使用NSClassFromString即可 NSClassFromString(@"NewsViewController") 但是在Swift中由于命名空间的存在导致这样的转化,会有一定的麻烦,我们可以用下…
let age = 22 let sex = "girl" if (sex == "girl" && age >= 18 && age <= 25){ print("女朋友") } else { print("走你") } swift2中为我们增加了一种新的语法: if case if case 18...25 = age { print("免费") } else…
因为想要学Mac os x编程,中文教材太少了,看了很多厉害的英文教材,很多都是swift语言的了,所以决定先要大体学一下swift语言. 学习一门语言,第一件事看swift官方文档,这里附上CocoaChina翻译小组翻译自苹果的官方文档:The Swift Programming Language.本篇译者:葛布林大帝(博客)  :http://www.cocoachina.com/industry/20140613/8818.html 好啦,下面开始学习吧~…
    即使你尽量用Swift编写iOS程序,难免会遇到部分算法是用C++语言编写的.那你只能去问问”度娘“或“狗哥”怎么用Swift调用C++算法.   一,C,C++, Objective-C,Swift有什么关系,还有什么是混编-.-? 1.当然是兄弟关系,虽然Objective-C是扩充C的面向对象编程语言,C++是在C语言的基础上开发的一种通用编程语言.Swift是由苹果公司推出有意让其与Objective-C共存于苹果公司操作系统上.但是Objective-C一直是由苹果公司来抚养,…
Closures --闭包 看了好些文章.由于自己也是刚开始学习swift,闭包还是不是很明白.暂时先放放.等看完后面的.加深感触后,在回头总结闭包的概念. 数组中常用的闭包函数 在Swift的数组中自带了一些比较好用的闭包函数,例如Map, Filter, Reduce.接下来就好好的看一下这些闭包,用起来还是比较爽的. (1) Map(映射) 说到Map的用法和功能,不能不说的是如果你使用过ReactiveCocoa框架,那么对里边的Sequence中的Map的使用方式并不陌生.其实两者的使…
国内介绍IOS书籍大多是很陈旧的代码, 2014年Apple发布了Swift语言, 毫无疑问Swift是一个强大的语言, 但是纵观国内的IOS现状,大家大多已经习惯了了OC, OC能解决的问题谁会想到去用Swift再实现一次了,本系列会一直更新下去,我会参考一些国内外著名书籍和著名论坛的Sample code,文中引用了大量<IOS8 SWIFT Programming CookBook>的例子,如果代码有任何纰漏请及时与我联系. 在阅读本内容之前: 1.你最好系统学习过一门OOP的编程语言,…
1,通讯录访问介绍 通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息.要实现访问通讯录有如下两种方式: (1)AddressBook.framework框架 : 没有界面,通过代码来获取所有联系人信息 (2)AddressBookUI.framework框架 : 通过系统提供的通讯录交互界面来访问(本文样例使用此方式) 2,联系人记录的属性 在一条联系人记录中,有很多属性,而这些属性又分为单值属性和多值属性. 单值属性是只有一个值的属性:如姓氏.名字.部门.备注等. 多值属性…
在xocde6出来我们大部分代码都是用objective-c写的(部分C/C++),现在出生来了一个新的语言叫swift,那么如何既能使用我们之前的代码,还可以使用新语言呢, 本文就此做一下说明. 关于swift语方的学习可以看文档 The Swift Programming Language 本文假设你已经有所了解,下面基于当前您当前在做的objective-c来做swift扩展, 假设我们想要用swift在原来的工程中做一个新的view界面, 这个view会用到原有的objective-c中…
由于Swift 3.0 出了太多令人兴奋的新特性,人们很容易忽略 Objective-C中的小改动.或许你会觉得苹果提及Objective-C 很可能是为了提高和Swift互操作性(译者注:互操作性主要是指OC代码与Swift代码相互转换),不过苹果仍然很欢迎开发者用Objective-C来完成工作. 在这篇文章中,我们就来看看Objective-C中新添加的类属性.Objective-C 类属性摘自 Xcode 8正式版中的说明:Objective-C now supports class p…
可空类型,对于熟悉C#的同学一定不会陌生.在C#里面值类型都是不能为空的,比如int类型默认为0,bool默认为false.但是我们给int加上?后,就是一个可空类型了. 那么Swift里面呢.Swift里面没有区分值类型,引用类型(或许有,可能我还没看到这方面的资料).那这个可空是怎么回事呢.原来在Swift里变量默认是不为空的.看代码: 你给一个String类型的变量付空值nil是会报错的. 那怎么让一个变量能为空呢,做法跟C#一样,加一个?.看代码: 那怎么取可空变量的值呢.这里就得拆解(…
今天是个值得纪念的日子:因为苹果的WWDC大会.苹果的每次WWDC(全球开发者大会)举行都让我们像打了肾上腺素这么兴奋.幸福.惊叹.震撼.深思. 今年也不例外,最关键的是苹果带来了它的一门新开发语言:Swift. 霎时间风起云涌,短短几个小时互联网界掀起了一股谈论Swift的小高潮,如果你不知道Swift,你会觉得这是一件很丢脸的事情,粑粑. 为了不至于太落后受鄙视,我今天也来简单谈谈Swift(不知道为何,国内把它称为雨燕.别这样好吗?这让我想起了 长安铃木的Swift 雨燕汽车) 一.全新S…
原文: http://www.testlab.com.cn/Index/article/id/1085.html#rd?sukey=fc78a68049a14bb228cb2742bdec2b9498806815fcb59399eee501874bb9e9086bce3050baf1438179330d72d2508871 摘要:开源的最大魅力,是能够满足人们的探索欲和求知欲,让我们可以很深入地了解一个系统,如果我们发现它的设计或者实现中有任何不合理的或者错误的地方,我们可以提出自己的想法并且实…
swift新特性(__nullable和__nonnull) 最近在看老师写代码的时候经常遇到两个陌生的关键字,但是当我在我的电脑上敲得时候就是敲不出,后来才知道这是为了swift与OC混编的时候产生的一个新特性,就很认真的研究了一下. 在swift中,可以使用!和?来表示一个对象是optional的还是non-optional,如view?和view!.而在Objective-C中则没有这一区分,view即可表示这个对象是optional,也可表示是non-optioanl. 这样就会造成一个…
转载请务必注明出处(all copyright reserved by iOSGeek) 本文主要分为两个部分,第一部分介绍Swift的基本语法,第二部分讲解一个利用WebView来打开百度.sina等网页的小demo,如果对swift的语法不感兴趣的同学可以直接跳到第二部分来感受下Swift的魅力-(本文的demo源码已上传至github:https://github.com/iOSGeek0829/XSurfing) 一.Swift常用语法 Swift是Apple去年推出的一门新的语言,基于…
本节内容包括: 为你的Objective-c代码做好迁移准备 (Preparing Your Objective-C Code for Migration) 迁移过程(The Migration Process) 问题解决提示(Troubleshooting Tips and Reminders) 迁移工作提供了一个重新审视现有 Objective-C 应用程序的机会,并通过 替换部分Swift 代码来更好的优化应用程序的架构,逻辑以及性能.换句话说,所谓增量app迁移,就是让你使用之前的工具-…
Swift提供了一种高性能的,兼容Unicode编码的String实现作为标准库的一部分.在 Swift2中,String类型不再遵守CollectionType协议.在以前,String类型是字符的一个集合,类似于数组.现 在,String类型通过一个characters属性来提供一个字符的集合. AD: Swift提供了一种高性能的,兼容Unicode编码的String实现作为标准库的一部分.在Swift2中,String类型不再遵守 CollectionType协议.在以前,String类…
1,通讯录访问介绍 通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息.要实现访问通讯录有如下两种方式: (1)AddressBook.framework框架 : 没有界面,通过代码来获取所有联系人信息 (2)AddressBookUI.framework框架 : 通过系统提供的通讯录交互界面来访问(本文样例使用此方式) 2,联系人记录的属性 在一条联系人记录中,有很多属性,而这些属性又分为单值属性和多值属性. 单值属性是只有一个值的属性:如姓氏.名字.部门.备注等. 多值属性…
swif(1) println("Hello, world") 输出结果: Hello, world swift使用let来声明常量,使用var来声明变量 //变量 var myVariable = 42 myVariable = 50 //常量 let myConstant = 42 如果初始值没有提供足够的信息(或者没有初始值),那你需要在变量后面声明类型,用冒号分割 let implicitInteger = 70 let implicitDouble = 70.0 //此处声明…
这一部分,主要讲Swift中创新的可选型(optionals) 一.概要 可选型是Swift创新的一种新的类型,首先看一下可选型的应用场景: var errorCode : Int = 404 这时候errorCode的值是404,表示此时的错误状态码是404,当产生一种错误的时候就会获得其对应的errorCode, 但是如果没有错误那应该怎么办呢? 在C/C++和Java中我们会给errorCode赋值为0或者是null(其实null也就是0),但是我们怎么能够保证0不是一种错误的状态码呢?…
原文地址 在过去的几年中,移动应用程序风靡全世界并且已经改变了我们使用互联网进行工作或者休闲的方式.为了创建移动应用程序,各种技术应运而生,同时开发过程也开始将其作为一等公民来对待.尽管移动似乎已经无处不在了,但是它的未来才刚刚开始.我们正面对着新一代的移动设备,例如可穿戴设备以及组成物联网的大量移动工具.我们将会面对新的用来展示数据和接受命令的用户界面.同时,我们将会看到越来越多的公司真正地实现移动优先.所有的这一切都将会影响我们在未来的几年中设计.开发和测试软件的方式. 苹果公司在 WWDC…
前言 作为一种可与 Objective-C 相互调用的语言,Swift 也具有一些与 C 语言的类型和特性,如果你的代码有需要,Swift 也提供了和常见的 C 代码结构混合编程的编程方式. 1.基本数据类型 Swift 提供了一些和 C 语言的基本类型如 char,int,float,double 等价的 Swift 基本数据类型.然而,这些 Swift 的核心基本类型之间并不能隐式的相互转换,如 Int.因此,只有你的代码明确要求它们时再使用这些类型,而 Int 可以在任何你想使用它的时候使…
1,创建项目(比如你先选择Objective-C) 2,项目创建成功后接着创建一个swift类  3,Xcode会弹出提示框问你需不需要创建桥接文件(桥接文件的名称默认为:项目名称-Bridging-Header,如果没有弹出吃对话框你需要自己创建一个).  4,如果是你自己创建的,你需要在项目设置里面设置里创建的桥接文件的路径一遍Xcode能识别  5,在OC调用Swift需要导入框框标识的头文件(项目里面看不见该文件,你主要手动拼写,拼写规则必须遵循:项目名称-Swift) 6,swift想…
从Swift正式公布到现在,我基本一直在关注和摸索Swift.对于一门新语言来说,开荒阶段的探索自然是激动人心的,但是很多时候,资料的缺失和细节的隐藏也让人着实苦恼.最近几天的感受是,Swift 并不像我上一篇表达自己初步看法的文章里所说的那样,相对于 objc 来说有更好的学习曲线.甚至可以说 objc 在除了语法上比较特别以外,其概念还是比较容易的.而 Swift 在漂亮的语法之后其实隐藏了很多细节和实现,而如果无法理解这些细节和实现,就很难明白这门新语言在设计上的考虑.在实际编码中,也会有…
http://www.tuicool.com/articles/QZNrErM iOS 里面 Swift与Objective-C混编,Swift与C++混编的一些比较 时间 2015-03-23 23:35:00  博客园精华区 原文  http://www.cnblogs.com/yuyongjian/p/4361383.html 主题 SwiftC++Objective-C       即使你尽量用Swift编写iOS程序,难免会遇到部分算法是用C++语言编写的.那你只能去问问”度娘“或“狗…
最近在学习IOS,我一直使用的是C#来开发,对Java .C.C++也有一定的了解.最近入手了一台Air,想试着学习IOS开发. 如果你不是C#和Java阵营的,如果你对Swift没有兴趣,就不用往下看了,真的! 一开始我的目标很明确,那就是学习OC,应为此语言经过多年的广泛应用,网上源代码很多,而且遇到的问题在百度和Google里也能很容易的找到资料,所以我一开始是奔着OC去的,但是几天的视频看下来,发现这OC语法只能用奇葩二字来形容,也许是我用惯了C#和Java的语法,也许是我个人的问题,反…