iOS之swift
文章平均质量分 58
ZHZMAREN
fighting
展开
-
swift简单学习之懒加载
懒加载简单应用lazy var players: NSMutableArray = { var temporaryPlayers = NSMutableArray() temporaryPlayers.addObject("Mike Buss") return temporaryPlayers转载 2016-03-16 11:47:45 · 239 阅读 · 0 评论 -
Swift 项目中可能用到的第三方框架
这里的框架都是纯swift的 , 感谢开源 ,感谢大神们http://www.jianshu.com/p/83c069022e45?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=qq转载 2016-04-08 23:02:06 · 252 阅读 · 0 评论 -
swift简单学习之封装
在一年的OC开发过程中,终于有点封装的思想了。看到最近swift火的一塌糊涂 就没事研究一下。看了几篇开源项目,慢慢的似乎摸通了一些门道。在面向对象语言中封装这个东西。又不得不重新 理解。在view中要对width进行赋值要这样 view.frame.size.width , 每次这么长很烦 你可以封装:extension UIView{ var zz_height:CGFloat{转载 2016-04-08 23:11:48 · 442 阅读 · 0 评论 -
swift简单学习之UITabbleView的简单应用(加动画效果)
class ZHZOneViewController: ZHZBaseViewController,UITableViewDelegate,UITableViewDataSource { private var tabV:UITableView? lazy var dataArr:NSMutableArray = {原创 2016-04-07 17:34:09 · 618 阅读 · 0 评论 -
swift简单学习之MVC中的model
Oc中会有很多第三方,而且数据模型比较好理解 。但是在接触swift之后。刚开始时感觉有点扯淡 ,但是慢慢的机会发现 原来swift会让你的程序开发变得如此美妙,下面就是我理解的MVC中的M层修改 import 语句来引入 UIKit 代替 Foundation: import UIKit默认 Swift 文件引入 Foundation 框架所以可以直接使用其中的数据结构。原创 2016-04-09 00:04:05 · 590 阅读 · 0 评论 -
swift简单学习之数据下载(AFN)
import UIKitimport AFNetworkingimport MBProgressHUDimport Toastextension NSObject { func GET(URLString:String, parameters:[String:AnyObject]?, showHUD:Bool = true, success:((AnyObject?) -> V原创 2016-04-09 00:19:18 · 545 阅读 · 0 评论 -
swift 简单学习之数据解析
import UIKitfunc printJSONObject(anyObject:AnyObject?) { if let anyObject = anyObject,let data = try? NSJSONSerialization.dataWithJSONObject(anyObject, options: .PrettyPrinted) { print(N转载 2016-04-09 00:27:00 · 554 阅读 · 0 评论 -
swift简单学习之传值方式
1,属性传值:最简单的传值方式:在B控制器中属性对外开放 然后在A推出B的时候: testVC.arr = self.dataArr2,代理回调:这个涉及到协议:protocol SendMessageDelegate{ func sendMsg(str:String)}在协议方的控制器中声明一个代理: var d原创 2016-04-08 18:51:01 · 350 阅读 · 0 评论 -
swift简单学习之swift与OC互调
通过搭桥 我们可以在swift中调用很多oc中的第三方库!在OC中调用swift中的代码:当在OC里调用Swift中的代码时,需要依赖一个xcode自动生成的头文件,这个自动生成的头文件定义了项目中所有的Swift文件,这个头文件的命名为 “xxx-Swift.h” ,xxx为项目的名称,此外就不需要再做任何事情了,你只需要在OC代码里导入这么一个文件,就可以跟原创 2016-04-13 14:30:27 · 749 阅读 · 0 评论 -
swift简单学习之添加字体
效果图:1.先增加字体文件 :如 隶变体.ttf2.配置文件 :info.plist文件4.写成宏 供其他地方调用let MY_FONT = "Bauhaus ITC"代码示例: let addBookBtn = UIButton(frame: CGRectMake(200原创 2016-04-11 15:29:02 · 924 阅读 · 0 评论 -
swift3.0访问控制
去年研究了一段swift,今年swift3.0出来之后还没有怎么研究这个,在网上下了几个3.0的源码进行分析,发现多了这个关键字fileprivate。当时就是一脸的懵逼,然后就查各种资料:swift访问控制(fileprivate,private,internal,public,open)原来3.0新增了两个修饰符权限:fileprivate open那么这五个权限修饰符的原创 2016-11-22 10:03:18 · 1013 阅读 · 0 评论 -
swift3.0解疑@objc
根本问题要追到OC——swift互调用的点上,在OC使用的过程中我们都知道是基于运行时的,那么在Swift使用过程中,因为swift追求性能所以就不可能在运行时去查找这个类。 也就是说 Swift 类型的成员或者方法在编译时就已经决定,而运行时便不再需要经过一次查找,而可以直接使用。那么在Swift调用OC时没有问题,如果OC调用swift代码的时候怎么办呢??解决起来也很简单,在 Swi原创 2016-11-22 11:39:15 · 1361 阅读 · 0 评论 -
没有宏定义的swift???
Swift作为一款更加安全的语言, 放弃了C语言中的宏定义, 有效的防止预编译时代码宏替换的安全隐患, 但是也并非不能进行宏定义。创建一个swift的源文件,就是分类文件,然后:所谓swift方法的宏定义无非就是调用swift中的API 或者进行二次封装;打印调试信息 prient在模拟器或者真机调试的时候我们都是以DeBug模式走的,那么~~原创 2016-11-22 13:23:30 · 633 阅读 · 0 评论 -
swift3.0回首guard的奇妙之处
看源码发现了这个关键字:guard一直没有研究透这个用法,就知道这只是一个判断条件,然后else是条件不满足,下面的是条件都是满足之后执行的。查了官方解释:与if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行。与if语句不同的是,guard只有在条件不满足的时候才会执行这段代码。你可以把guard近似的看做是Assert,但是你可以优雅的退出而非崩溃。原创 2016-11-22 14:05:15 · 275 阅读 · 0 评论 -
swift的惊喜与疑问
先上几张图片:先说swift疑问,即? 上面两张图就很好的反应了一个问题,即所有Var (变量)声明属性的时候在属性类型后面都会添加一个问号?官方解释:可选类型即Optional。Optional :在使用Optional值的时候需要在具体的操作,比如调用方法、属性、下标索引等前面需要加上一个?,经喵神指正,”Optional Chaining的问号的意思是询问是否响应后面这个方法原创 2016-11-22 14:31:16 · 282 阅读 · 0 评论 -
swift as as! as?详情
苹果官方文档:swift 上篇文章了解了 “ ?”和“ !”的区别,看这个题目差不多也是和?!有关系的???摘自中文api的话:仅当一个值的类型在运行时(runtime)和as模式右边的指定类型一致 - 或者是该类型的子类 - 的情况下,才会匹配这个值。如果匹配成功,被匹配的值的类型被转换成 as 模式左边指定的模式,也就是类型强转。1. as:字面理解就是有保证的转换,从原创 2016-11-22 14:57:16 · 415 阅读 · 0 评论 -
swift3.0使用总结
上周swif3.0重写了一个公司的内部工具。查询资料:http://www.qingpingshan.com/rjbc/swift/156809.html。语法非常精炼。结构很是完美,用上手的话就懒得用OC写项目了。但是由于 是3.0新出的,相比其他版本的话改动还是很大的。所以以前很多第三方框架都是不能用的。或者是报错的,譬如 Alamofire。SwiftyJSON。SnapKit。上面原创 2016-12-05 11:52:22 · 461 阅读 · 0 评论 -
swift简单学习之单例
OC的单例写法前几篇文章已经介绍过,那在彩笔的眼里 swift的单例写法是这个样子的:class CaiBi{ class var share:CaiBi{ struct Static{ static var oneTaken:dispatch_once_t = 0 stat原创 2016-03-31 16:38:04 · 223 阅读 · 0 评论 -
swift简单学习之轮播器
初学swift 语法之类的还有点蒙,简单的写了一个轮播器的封装,没有精加工 不喜勿喷!!!import UIKitclass ScrollViewLoop: UIView,UIScrollViewDelegate { var ImgUrl = NSMutableArray() private var count = 0 var delegate : circl原创 2016-04-08 14:37:06 · 349 阅读 · 0 评论 -
swift简单学习之getter setter方法
、如果计算属性的 setter 没有定义表示新值的参数名,则可以使用默认名称 newValue 。下面是使用了便捷 sette r 声明的 Rect 结构体代码: struct AlternativeRect { var origin = Point() var size = Size() var center: Point { ge转载 2016-03-16 12:06:57 · 346 阅读 · 0 评论 -
swift简单学习之函数(func)
1:函数 --常量参数 func 函数名( 参数变量:类型 ,参数变量:类型...){} 说明: 1: func 是函数关键字 2:{} 函数体 3: 参数变量是默认常量类型,不能在函数函数体里面直接修改 即 func A (value:String) 与 func A (let value:String转载 2016-03-16 14:14:10 · 574 阅读 · 0 评论 -
swift简单学习之逻辑运算符
下面是swift语言中于OC 不一样的地方三元条件运算符三元条件运算符是一种特殊的运算符,有三个部分,其形式为question? answer1:answer2.这是一个用来测试两种表达式基于输入是真或是 假的快捷方式。如果question? 为真时, 它评估answer1并返回其值; 否则,它评估answer2并返回其值。三元条件运算符是下面的代码的简化:if question转载 2016-03-16 15:03:57 · 382 阅读 · 0 评论 -
swift简单学习之类与对象
使用 class 和类名来创建一个类。类中属性的声明和常量、变量声明一样,唯一的区别就是它们的上下文是 类。同样,方法和函数声明也一样。class Shape { var numberOfSides = 0 func simpleDescription() -> String { return "A shape with \(numberOfSides)转载 2016-03-16 15:30:42 · 251 阅读 · 0 评论 -
swift简单学习之“ ? !”
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错: var stringValue : String //error: variable 'stringValue' used before being initi转载 2016-03-16 16:14:24 · 235 阅读 · 0 评论 -
swift简单学习之类和对象(2)
1、类和结构的异同类和结构有一些相似的地方,它们都可以:定义一些可以赋值的属性;定义具有功能性的方法定义下标,使用下标语法定义初始化方法来设置初始状态在原实现方法上的可扩展性根据协议提供某一特定类别的基本功能更多内容可以阅读:属性,方法,下标,初始化,扩展和协议等章节类还有一些结构不具备的特性:类的继承性对类实例实时的类型转换析构一个类的实例使之释放转载 2016-03-16 18:13:43 · 229 阅读 · 0 评论 -
swift简单学习之Struct
一. Struct (结构体)结构体,说白了就是一组变量,这些变量有统一的命名。在Swift中,我们不仅可以在Struct中声明变量并为变量设置默认值,而且可以在Struct中添加相应的函数。接下来我们就要创建一个Point结构体,里边有两个属性x坐标和y坐标,并且x坐标和y坐标的初始值为0。其中还有两个方法,一个是display方法,负责输出点的坐标,并且还有一个setPoint方法,这个方原创 2016-03-31 11:23:56 · 928 阅读 · 0 评论 -
swift简单学习之继承
一. 类的继承其实继承理解起来还是蛮简单的,说白了就是子承父业。子类可以继承父类的一些东西,在继承之时,父类可以选择一些东西留给子类,同时也可以保留一些东西作为私有(private)物品。同样,子类也可以选择一些东西进行继承,如果对继承的东西不太满意,子类就可以对继承过来的东西进行重新改造(override)以满足自己的需求。如果要定义抽象类,只需把该类的构造器定义为私有即可。下方将会给出类的原创 2016-03-31 13:39:41 · 297 阅读 · 0 评论 -
swift简单学习之闭包(block)
/*** 闭包 就是匿名函数:闭包变量:函数类型*///因为Closure变量没有赋初始值,所以我们把其声明为可选类型的变量。在使用时,用!强制打开即可var myClour0:((Int,Int) ->Int)?//关键字:typealias 定义一个特定函数类型,我们就可以拿着这个类型去声明一个Closure变量了//定义闭包类型(就是一个函数类型)typea原创 2016-03-31 14:31:25 · 303 阅读 · 0 评论 -
swift 简单学习之简单框架
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { self.window = UIWindow(frame: UIScreen.mainScreen().bounds)原创 2016-04-06 18:56:13 · 251 阅读 · 0 评论 -
swift简单学习之字符串
1. 字符串定义 var s = "abc"// 两个字符串均为空并等价。var emptyString = "" // 空字符串字面量var anotherEmptyString = String() // 初始化 String 实例字符串字面量可以包含以下特殊字符:转义字符 \0 (空字符)、 \\ (反斜线)、\t (水平制表转载 2016-03-15 17:49:48 · 398 阅读 · 0 评论 -
swift简单学习之字典
/*字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典*///(1)创建一个字典var dic:DictionaryString,String>=["三国演义":"罗贯中",转载 2016-03-15 17:50:41 · 268 阅读 · 0 评论 -
swift简单学习之数组
// 1. 数组定义// 1> 使用[]可以快速定义数组,每一个数组元素使用 , 分隔// 2> 数组中的数据元素可以是不同类型var array = ["hello", "swift", 1, 1.2]//------------------------------------------------------------------------------// 2. 如果要让数组转载 2016-03-15 17:53:17 · 266 阅读 · 0 评论 -
swift简单学习之for in
// 1. for// 传统的for循环方式在swift中同样支持var num = 0for(var i = 0; i 10 ; i++) { num += i}num//------------------------------------------------------------------------------// 2. for-in用来遍历一个区间(rang转载 2016-03-15 17:55:37 · 718 阅读 · 0 评论 -
swift简单学习之target是这么用的
需求:某些时候 可能需要自定义导航栏(工厂方法!!!!)先创建一个工厂:在传入target:最后在传入的target里面实现点击方法:原创 2016-04-12 10:42:10 · 447 阅读 · 0 评论 -
swift简单学习之数组(2)
今天学习swift源码:发现这句话:看着没什么不一样的就是删除一个数组中的元素:等敲在自己xcode上面的时候一直报错 说数组没有这方法 瞬间僵化了 难道我的xcode出问题了 网上度一一圈才发现其实swift没有这个语法了:解决办法:看一下人家的代码进去:只是做了一个分类而已 解决办法是一样的。不知道是不是OC用舒服了 赶紧swift这样是不是有点扯啊,或许没有领悟到这样原创 2016-04-12 15:22:00 · 318 阅读 · 0 评论 -
swift3.0 逃逸的“闭包”
首先了解一下@escaping 和 @noescape 的含义,在swift2中,你可能遇到过@noescape属性,不过在swift3.0中已经被移除了(原因很简单:很简单,在swift3.0中@noescape被用作一个默认值),替而换之的是@escaping。逃逸的闭包理解:如果一个闭包被作为一个参数传递给一个函数,并且在函数return之后才被唤起执行,那么这个闭包是逃逸闭包。并且这个原创 2016-11-23 16:32:56 · 2356 阅读 · 0 评论