swift3.0专题提供swift3.0的最新资讯内容,帮你更好的了解swift3.0。
在oc中使用UIImagePickerController只要设置好代理、写代理方法就行了,但是在swift中编译没有什么问题,但是运行的时候会报错,选择一张图片,会显示库是私有的,不能访问,遇到这样的问题很好的解决办法就是在info.plist文件中添加Privacy - Photo Library Usage Description 和 Privacy - Camera Usage Descr
我们有时候在开发iOS的时候,涉及到跳转界面时,需要隐藏tabbar,以便我们重新定义新的。 OC版本的: //1.设置self.tabBarController.tabBar.hidden=YES;       self.tabBarController.tabBar.hidden=YES;   //2.如果在push跳转时需要隐藏tabBar,设置self.hidesBottomBarWhen
/* 打印json数据 */ LJDownLoadNetImage.request("GET", url: "http://jsonplaceholder.typicode.com/users/1") { (data, respond, error) in data转String let str =
The as! Operator! 让我们来操作as吧! 说明 因为最近在学习Swift,这里根据苹果官方文档加上自己的理解,总结了下常用的as、as!、as? 这三种类型转换操作符的异同和使用方式。 正文 as keyword:Guaranteed conversion、 Upcasting 理解:字面理解就是有保证的转换,从派生类转换为基类的向上转型 著名代码: // 将1转成float le
首先来说一些Swift中的Optional,译为可选项,他是一个枚举类型,有以下两个值   1. none:表示没有值  2. some:某一类值 原始可选项的定义: 1 1 let x: Optional = 10 简单的定义: 1 2 1 2 //'?'用来定义 y 是一
//避免循环引用,weak当对象销毁的时候,对象会被指定为nil //weak var weakSelf = self //对象推到,省略了ViewController weak var weakSelf : FirstViewController? = self //等同与上面的表达式 ljload?.loadData({ (j
//MARK: -- 根据类文件字符串转换为ViewController extension ThirdViewController { /// 类文件字符串转换为ViewController /// - Parameter childControllerName: VC的字符串 /// - Returns: ViewController func getV
1. data 根据url这个key存储在 fetchLoads中 // A single key may have multiple callbacks. Only download once. func setup(progressBlock: ImageDownloaderProgressBlock?, with completionHandler: ImageDownloader
ljTempModel = UserModel.init(userName: "sww", userID: 12, phone: "123", email: "deew") ljTempModel?.ljArray.append("sww") print("可选绑定前:\(ljTempModel?.ljArray)") //可选绑定
//元组 //1.使用元组保存信息 let infoTuple = ("why",18,1.08) let tupleName = infoTuple.0 let tupleAge = infoTuple.1 print(tupleName.characters.count) //写法二//别名 let infoTuple1 = (name:"why" , age:18 ,height:1.08
//类的基本使用 //1. 创建类 class Student { //类的属性定义 // 存储属性: 用于存储实例的变量&常量 var name : String = "" var age : Int = 0 var mathScore : Double = 0.0 var chineseScore : Double = 0.0 //计算
swift 中的析构函数,类似与OC中的dealloc函数,类似于c++ 中的析构函数   class deallocPerson { var name : String = "" var age : Int = 0 //重写析构函数,监听对象的销毁 deinit { print("deallocPerson ---deinit ")
//1. 可选链的使用 // ?.就是可选链,系统会自动判断可选类型是否有值 //如果有值,则解包,如果没有值,则赋值nil //注意:可选链条获取的值,一定是一个可选类型 // if let price = p.dog?.toy?.price{ // print(price) //} //2. 给why的狗的玩具赋值一个新的价格 // 如果可选链中有一个可选类型是没有值,那么语句直接不执
//1. 协议的定义 protocol SportProtocol{ //默认情况下,协议中的方法都是必须实现的方法 func playBasketball() func playFootball() } //2. 定义类,并且遵守协议 class teacher : SportProtocol{ func playFootball() { pri
Swift的字符串类String ,没有像OC NSString类,有属性可以直接转换为基本数据类型,所以就总结了常用的String类转换为基本数据类型的方法 直接上码: import UIKit class BaseTypeConvertClass: NSObject { //简化版 CGFloat(Float(str)) open class func String
//选择排序-升序 func minMax(array: inout [Int]) { for i in (0..<array.count){ var k = i for j in (k+1..<array.count){ if(array[k] > array[j]){ k = j
最近在学习swift3.0 遇到了 修改函数参数时会报'xxx' is a 'let' constant的问题 解决方法就是 在函数参数中加 上inout 然后掉函数时要加上&字符,具体使用如下: func minMax(array: inout [Int]) { for i in (0..<array.count){ var k = i for j in
//存储图片的文件夹 var  ljFilePath:String = NSHomeDirectory() + "/Documents/" + "LJImageCache/" /// 写文件 /// /// - Parameters: /// - fileName: 文件名称 /// - data: 数据data /// - Returns:
一. 缓存原理 图片缓存原理原理是,如内存没图片,去磁盘找,若磁盘也没有,则根据url去下载,然后缓存到内存和磁盘中,简单易用 缓存的目录结构如下图:  //存储图片的文件夹  var ljFilePath:String =NSHomeDirectory() +"/Documents/"+"LJImageCache/"      二. 图片名称处理 为了确保缓存下来的图片的唯一性,所以此处采用图片
因为MD5加密是不可逆的,所以一般只有MD5加密的算法,而没有MD5解密的算法。 创建一个Sting+MD5.Swift字符串分类文件(同时此处需要创建一个bridge.h桥接文件,引入这个头文件 #import <CommonCrypto/CommonDigest.h>,md5加密方法需要使用的文件) 1.bridge.h桥接文件如下: #ifndef bridge_h #define br