swift
CoderZ9090
人的一生会遇到两个人,一个惊艳了时光,一个温柔了岁月。
展开
-
swift初体验
//: Playground - noun: a place where people can play//1.swift中如何导入框架import UIKit//2.定义标识符 swift中定义标识符必须告诉编译器是一个常量还是变量//声明常量使用let 声明变量使用var//let/var 标识符名称 :标识符的数据类型 = 值let a : Int = 20var b原创 2017-02-16 17:38:16 · 210 阅读 · 0 评论 -
swift 类的定义,父类方法重写
import UIKitclass person :NSObject {//定义一个类可以继承父类,也可以不继承,如果不继承省略冒号和后面的父类 var age = 0 //override:重写,如果重写setValue(_ value: Any?, forUndefinedKey key: 方法,在使用kvc对类的属性赋值时,字典中有的字段可以在原创 2017-02-25 16:22:33 · 2338 阅读 · 0 评论 -
swift 属性定义 存储属性、计算属性、类属性
import UIKitclass student :NSObject { //1:定义存储属性 (存放一些常量、变量,通过对象访问) var age : Int = 0 //定义整型变量 var name : String? //定义可选类型变量,默认值为nil var mathScore : Double = 0.0 //定义Doubl原创 2017-02-25 17:19:46 · 847 阅读 · 0 评论 -
swift 自定义类的构造函数,有参构造、无参构造
import UIKitclass person : NSObject { var name : String? var age : Int = 0 //1.重写父类的初始化方法 override init(){ //在构造函数中,如果没有明确调用super.init(),那么系统会自动帮你调用super.init()原创 2017-02-25 21:56:36 · 3044 阅读 · 0 评论 -
swift 捕获异常,异常处理方式
//// ViewController.swift// Throws//// Created by fe on 2017/3/7.// Copyright © 2017年 fe. All rights reserved.//import UIKitclass ViewController: UIViewController { override func vi原创 2017-03-07 14:39:47 · 2156 阅读 · 0 评论 -
SDWebImage使用细节
SDWebImage作为目前最受欢迎的图片下载第三方框架,使用率很高。但是你真的会用吗?本文接下来将通过例子分析如何合理使用SDWebImage。使用场景:自定义的UITableViewCell上有图片需要显示,要求网络网络状态为WiFi时,显示图片高清图;网络状态为蜂窝移动网络时,显示图片缩略图。如下图样例:由于要监听网络状态,在这里笔者推荐使用AFNetWorking。 在转载 2017-03-21 10:09:54 · 360 阅读 · 0 评论 -
swift3.0 倒序for循环
看了许多关于Swift for循环的文章,发现基本上都是正序的for循环,对于逆序的我一直使用while循环,直到我发现了这个方法。。。[objc] view plain copyprint?for i in (0...10).reversed() { print(i) } for i in (0...10).revers转载 2017-04-07 14:07:50 · 2529 阅读 · 0 评论 -
swift 3.0 日期、日历的使用指南
处理日期的常见情景NSDate -> String & String -> NSDate日期比较日期计算(基于参考日期 +/- 一定时间)计算日期间的差异拆解NSDate对象(分解成year/month/day/hour/minute/second 等)NSDate相关类NSDateDateFormatterDateC转载 2017-03-13 11:26:10 · 919 阅读 · 0 评论 -
swift 3.0 GCD使用
swift 3中对C层级的GCD的API进行了彻头彻尾的改变。本文将从实际使用场景来了解一下新的api使用。dispatch_async一个常见的场景就是在一个全局队列进行一些操作后切换到主线程配置UI。现在是这么写:DispatchQueue.global().async { // code DispatchQueue.main.async { //转载 2017-03-14 15:35:33 · 735 阅读 · 0 评论 -
Swift3.0 / swift2.3中dispatch_group的使用
在项目开发中有时候需要把一些循环执行的异步操作加入到group中,让彻底循环完之后再进行下一步操作,直接上代码创建一个组swift2.3:let group = dispatch_group_create()swift3.0:let group = DispatchGroup()1234512345循环加载数据swift2.3:for _ in array.count {转载 2017-03-15 16:03:15 · 528 阅读 · 0 评论 -
iOS 图文混排(swift)
//// ViewController.swift// ImageText//// Created by fe on 2017/4/3.// Copyright © 2017年 fe. All rights reserved.//import UIKitclass ViewController: UIViewController { //展示文本的标签原创 2017-04-03 10:16:54 · 735 阅读 · 0 评论 -
新闻网页类开发html和iOS原生交互
一:服务器返回网页需要展示的内容//// ViewController.swift// WangYiDetailNews//// Created by fe on 2017/7/24.// Copyright © 2017年 fe. All rights reserved.import UIKitclass ViewController: UIViewControl原创 2017-07-27 15:36:53 · 1023 阅读 · 0 评论 -
导航栏navigationItem.titleView设置搜索框注意事项
第一种设置方法navigationItem.titleView = UISearchBar(frame:CGRect(x:0,y:0,width:180,height:30))该设置搜索框方法有两个缺点,第一个缺点导致搜索框的frame不可控,随着titleview的frame变化,第二个缺点是有可能导致titleview在设置搜索框后,整个navigationBar的高度会向下延伸,导致显示的高...原创 2018-04-12 10:52:10 · 5575 阅读 · 0 评论 -
swift 4.0 kvc 赋值失败问题
swift 4.0 kvc 赋值失败问题 需要在模型属性前加上 @objc ,以保证属性被添加到运行时方法列表 @objc var access_token:String = "" @objc var expires_in:TimeInterval = 0.0 @objc var uid:String?...原创 2018-04-20 22:05:43 · 614 阅读 · 0 评论 -
《音视频直播------GPUImage》
美颜滤镜效果GPUImage的介绍GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果GPUImage是利用GPU,使在图片和视频上应用不同的效果和滤镜变得非常的容易,同时它还拥有出色的性能,并且它的性能要比苹果内置的相关APIs出色高斯模糊(毛玻璃)效果在iOS总实现毛玻璃效果方式有很多UIToolBar本身有毛玻璃效果iOS8之后UIVisu...原创 2018-06-14 18:00:06 · 741 阅读 · 0 评论 -
Swift Gif图播放
系统框架ImageIO实现Gif图播放 //// ViewController.swift// GiftAnimation//// Created by fe on 2018/6/9.// Copyright © 2018年 fe. All rights reserved.//import ImageIOimport UIKitclass ViewController:...原创 2018-06-09 18:23:36 · 1158 阅读 · 0 评论 -
《音视频直播------音视频采集》
采集视频概述音视频采集是直播架构的第一环,是视频的来源其实视频的采集有多个应用场景:比如二维码开发音视频采集包括两部分:视频采集音频采集在iOS开发中,是可以同步采集视频&音频的,使用方式也非常简单相关的采集API都封装在AVFoundation框架中,导入对应框架,实现功能即可采集步骤采集步骤文字描述PS:如果做过二维码开发,应该对相关步骤非常熟悉(非常类似)导入框架相关API主要在AV...原创 2018-06-11 01:36:55 · 1217 阅读 · 0 评论 -
swift 创建类方法(扩展)和便利构造函数
//// UIButtonExtension.swift// ZYFWB//// Created by fe on 2017/3/8.// Copyright © 2017年 fe. All rights reserved.//import UIKit//UIButton的类方法扩展extension UIButton { //这里的类方法相当于OC原创 2017-03-08 10:24:56 · 3058 阅读 · 0 评论 -
swift 函数使用注意事项
import UIKit//1.swift中的默认参数 (在参数类型后加上 = 参数值)func teachCourse(courseName:String = "语文"){ print("教的课程是\(courseName)")}teachCourse() //如果在调用函数时不传参数,则使用默认参数teachCourse(courseName: "历史") //如果有参数原创 2017-02-24 22:39:51 · 297 阅读 · 0 评论 -
swift 函数语法、格式
import UIKit//swift中函数的格式如下/*func 函数名(参数列表) -> 返回值类型 { 代码块 return 返回值}*///func 是关键字,多个参数列表之间使用逗号隔开,也可以没有参数//使用箭头->指向返回值类型//如果函数没有返回值,返回值为Void,并且"->"可以省略//1没有参数没有返回值的方法func about1(原创 2017-02-24 17:14:25 · 645 阅读 · 0 评论 -
swift 常量使用注意事项
//: Playground - noun: a place where people can play//1.swift中如何导入框架import UIKit//创建一个常量对象let view : UIView = UIView()//设置view的颜色view.backgroundColor = UIColor.red//设置尺寸view.frame = CGRect原创 2017-02-17 10:23:28 · 344 阅读 · 0 评论 -
swift 类型推导
//: Playground - noun: a place where people can play//1.swift中如何导入框架import UIKitlet a : Int = 10 //定义常量10 定义时候使用:Int来明确常量类型let b = 2.55 //定义常量b 没有明确常量类型 但是系统通过赋值类型会推导出常量类型原创 2017-02-17 10:46:11 · 283 阅读 · 0 评论 -
swift中的基本运算
//: Playground - noun: a place where people can play//1.swift中如何导入框架import UIKit//swift中在进行基本运算时必须保证类型一致,否则会出错//相同类型之间才可以进行运算,因为swift中没有隐式转换let m : Int = 20let n : Double = 3.15//将整形转换成浮点型原创 2017-02-17 11:03:21 · 312 阅读 · 0 评论 -
swift 逻辑分支
//: Playground - noun: a place where people can play//1.swift中如何导入框架import UIKit//------------------------------swift中if的用法-------------------------//1>if后面的()可以省略//2>判断语句不再有非0/nil即真,判断语句必须有明确的原创 2017-02-17 17:51:44 · 415 阅读 · 0 评论 -
swift 属性监听器,监听属性变化
import UIKit//属性监听器本质是闭包class Person: NSObject{ var name:String? {//属性后面加一对大括号称为属性监听器 //属性即将进行改变时监听 willSet{ print("11111") print(newValue)//系统的临时变量,用来保原创 2017-02-27 22:12:11 · 3354 阅读 · 0 评论 -
swit 闭包的基本使用
还是模拟网络请求,首先创建网络请求类//// NetworkRequestTool.swift// Test//// Created by fe on 2017/2/28.// Copyright © 2017年 fe. All rights reserved.//import UIKitclass NetworkRequestTool: NSObject原创 2017-02-28 22:46:33 · 606 阅读 · 0 评论 -
swift 语法、循环
//: Playground - noun: a place where people can play//1.swift中如何导入框架import UIKit//------------------------------swift中if的用法-------------------------//1>if后面的()可以省略//2>判断语句不再有非0/nil即真,判断语句必须有明确的原创 2017-02-20 22:27:26 · 786 阅读 · 0 评论 -
swift 字符串拼接、截取
import UIKit//swift 字符串//1>swift中的字符串String是一个结构体,性能更高//2>NSString是一个OC对象,性能略差//3>String支持直接遍历//4>Swift提供了String和NSString的无缝转换let str = "hello world"//遍历字符串for c in str.characters{ print原创 2017-02-20 23:13:41 · 12810 阅读 · 0 评论 -
swit 数组用法,增删改查、合并
import UIKit//1定义数组//1.1定义不可变数组:使用let修饰标志符定义出来的数组是不可变数组let array1 = ["A","B"] //常用//1.2定义可变数组:使用var修饰标志符定义的是可变数组var array2 = Array()var array3 = [String]()//常用//2对可变数组的基本操作//2.1添加元素a原创 2017-02-21 20:20:22 · 471 阅读 · 0 评论 -
swit 字典用法,增删改查、合并
import UIKit//1定义字典//1.1定义不可变字典,系统会自动判断[]里面存放的是键值对还是数组元素let dic1 = ["name":"zhengyanfeng" , "age":16 , "height":1.88] as [String : Any]//1.2定义可变字典var dic2 = [String : Any]()//2.1可变字典添加元素dic2原创 2017-02-21 21:57:33 · 514 阅读 · 0 评论 -
swit 元组的用法
import UIKit//1 使用数组定义一组数据let array = ["zhengyanfeng" , 18 , 1.88] as [Any]array[0] // 取出数组中的第一个元素array[1] // 取出数组中的第二个元素//2 使用字典定义一组数据let dic = ["name" : "zhengyanfeng" , "age" : 18 , "heig原创 2017-02-21 22:30:58 · 437 阅读 · 0 评论 -
swift 闭包循环引用的解决办法
模拟网络请求,封装工具类,使用闭包变量对闭包进行强引用//// NetworkRequestTool.swift// Test//// Created by fe on 2017/2/28.// Copyright © 2017年 fe. All rights reserved.//import UIKitclass NetworkRequestTool:原创 2017-03-02 15:59:15 · 627 阅读 · 0 评论 -
swift 可选类型语法
import UIKit//swift中有规定:对象中的任何属性在创建对象时,都必须有明确的初始化值//有时候我们想把创建的对象赋值为nil,但是swift是强类型语言,nil也是一种类型,所以不能把创建的对象初始化为nil,但是有时候我们给新建的对象赋值nil又在所难免,这时候就出现了:可选类型//可选类型和字符串、数组、字典等一样也是一种数据类型//1:定义可选类型//1.1原创 2017-02-22 23:08:10 · 302 阅读 · 0 评论 -
swift 可选类型使用场景示例
import UIKit//swift可选类型用法示例//创建一个URLlet url = NSURL(string: "www.baidu.com")//可以看到NSURL(string: "www.baidu.com") 返回的是一个NSURL?可选类型,这就需要在使用url的时候进行强制解包或者进行可选绑定,总之不管使用哪种方法url为空时候都不可能赋值给urlRequest,原创 2017-02-23 14:05:27 · 652 阅读 · 0 评论 -
swift tableView的简单用法
//// ViewController.swift// SwiftTableView//// Created by fe on 2017/3/3.// Copyright © 2017年 fe. All rights reserved.//import UIKit//swift遵守协议只需要跟在父类之后,使用逗号隔开class ViewController: UIVi原创 2017-03-03 14:00:51 · 3848 阅读 · 0 评论 -
swift 自定义Log
swift和OC的自定义Log有一些不同,具体代码如下//// AppDelegate.swift// Test//// Created by fe on 2017/03/03.// Copyright © 2017年 fe. All rights reserved.//import UIKit@UIApplicationMainclass AppDele原创 2017-03-03 10:15:03 · 1168 阅读 · 4 评论 -
《音视频直播------视频编码》
视频编码介绍为什么进行压缩编码?视频是由一帧帧的图像组成(见实例)比如一张Gif图片其实就可以被分解成若干张单独的图片分别出的图片未经压缩的视频的数据量巨大比如:录音一分钟视频, 需要多大的空间来保存了?1> 为了不让用户感受到卡顿效果, 1秒钟之内至少需要16帧画面(正常开发通常会采集30帧)2> 假如该视频是一个1280*720分辨率的视频(正常情况下会比这个大很多)结果:1280...原创 2018-06-26 22:53:42 · 523 阅读 · 0 评论