- 博客(55)
- 收藏
- 关注
原创 混合 APP 开发(Hybrid App)
目录混合 App Html5简介 UIWebView 和 WKWebView UIWebView 和 JS 交互 WKWebView 和 JS 交互 JS 调用 Native 相机一. 混合 APPHybrid Mobile App 可以理解为通过 Web 网络技术(如 HTML,CSS 和 JavaScript)与 Native 相结合的混合移动应用程序。H5用于大...
2018-06-01 11:24:18 12599
转载 在Storyboard中为UITableView添加Header和Footer
在Storyboard中为UITableView添加Header和Footer我在这里所说的Header和Footer并不是sectionHeader和sectionFooter,而是指UITableView的tableHeaderView和tableFooterView,这两个可以跟随tableView滑动的头部和尾部.使用代码添加:首先需要用代码(或者使用xib)创建一个继承自...
2018-06-29 14:09:47 1480
转载 【iOS】Storyboard加载Xib自定义view(Swift)
转自:https://www.jianshu.com/p/a34ce1812178本文使用语言为 Swift, OC 实现有所不同, OC 实现请参考:[iOS] 用xib建立一个自定义view1. 新建DemoView.swift 和 DemoView.xib设置xib显示元素如图2. 设置xib文件的file's onwer选项设置xib文件的fil...
2018-06-29 13:06:22 1441
原创 Swif- 访问控制
//可以给类型, 属性, 方法, 构造器, 下标添加访问控制.协议, 全局常量,变量, 函数也可以限制范围, 下文统称 entity //1. Modules and Source Files //Swift 的访问控制基于 modules 和 source file 的概念 //module 是一个代码分配单元, 可以被其它 mo...
2018-06-21 14:07:47 281
原创 Swift- 内存安全
//1. 访问内存冲突 //对同一块内存的读写同时进行 //2. 内存访问特征 //按冲突访问的语境, 内存访问有三个特征: 访问是否是读或写, 访问的中间过程, 内存正在被访问 //特别地, 当两个访问满足以下条件时, 冲突发生: //至少一个写 //访问内存的同一个...
2018-06-21 14:02:23 461
原创 Swift- 引用计数
//1. 类实例之间的 Strong Reference Cycles class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? de...
2018-06-21 13:59:47 316
原创 Swift- 泛型
//7//定义协议 Container, 声明一个相关类型 Itemprivate protocol Container { associatedtype Item mutating func append(_ item: Item) var count: Int { get } subscript(i: Int) -> Item { get }}/...
2018-06-21 13:58:32 469
原创 Swift- 延展
override func viewDidLoad() { super.viewDidLoad() //扩展(Extensions) //扩展可以给现有的Class, struct, enum 或者 protocol 类型增加新的功能, 包括没有源码的类型, 但是不能重写现有方法.类似于 OC 的category, 不同的是 ext...
2018-06-20 08:51:48 485
原创 Swift- 嵌套类型
struct BlackjackCard { // nested Suit enumeration enum Suit: Character { case spades = "♠", hearts = "♡", diamonds = "♢", clubs = "♣" } //...
2018-06-20 08:51:06 388
原创 Swift- 类型转换
override func viewDidLoad() { super.viewDidLoad() //类型转换运算符: is, as //可以用类型转换检查实例类型, 或者一个类型是否服从协议 class MediaItem { var name: String ...
2018-06-20 08:50:21 962
原创 Swift- 错误处理
override func viewDidLoad() { super.viewDidLoad() //1. 呈现和抛出错误 //在 Swift 中, 错误的呈现使用服从 Error协议的类型的值 //Swift 的 enum 适合用来封装一组相关的错误 enum VendingMachineError: Error...
2018-06-20 08:49:44 520
原创 Swift- 可选链
override func viewDidLoad() { super.viewDidLoad() //可选链 //可选链是访问或调用可选类型的属性, 方法, 下标的过程, 如果可选类型有值则调用成功, 否则返回 nil. //多个访问可以链接在一起, 其中一个访问失败,则整个链表失败. //1....
2018-06-20 08:49:09 330
原创 Swift- 析构
class Bank { //类型属性 static var coinsInBank = 10_000 //类型方法 static func distribute(coins numberOfCoinsRequested: Int) -> Int { let numberOfCoinsToVend...
2018-06-20 08:48:31 234
原创 Swift- 构造器
override func viewDidLoad() { super.viewDidLoad() //和 OC 的 init 方法不同,Swift 的初始化方法没有返回值,Swift 中 init 方法的作用是确保新的实例在使用之前被正确初始化 //1. 为存储属性设置初始值 //Class 和 ...
2018-06-20 08:47:13 633
原创 Swift- 继承
//Swift 中的 Class 可以继承父类的方法, 属性和其它特征.继承是 Class 区别于其它类型的一个主要特点 //1. 定义一个基类(Base Class) //没有父类的类称为基类 class Vehicle { var currentSpeed = 0.0 var de...
2018-06-20 08:41:16 490
原创 Swift- 下标(Subscripts)
//下标(Subscripts) //Class, struct, enum 都可以定义下标 //1. 下标语法 //下标语法和实例方法以及计算属性类似, 使用关键字 subscript, 可以指定参数和返回值. //不像实例方法, 下标可以是读写, 只读的, 类似于计算属性 class Person { ...
2018-06-20 08:40:34 259
原创 Swift- 方法
func methodGrammar() { //方法是和特定类型相关的函数, Swift 中 Class, struct, enum 都可以定义实例方法和类型方法 //Class 的方法可以继承, struct, enum 方法不可以继承 //struct, enum 是值类型, 属性默认不能修改, 要修改使用 mutating 关键字 ...
2018-06-20 08:39:20 323
原创 Swift- 闭包
//闭包closures 类似于 OC的 block, 闭包可以捕获(capture)并且存储代码块中指向常量或变量的指针//Global and nested functions 都是闭包的特例, 闭包有三种形式://(1)Global functions 是有名字但是没有 capture 任何值的闭包//(2)Nested functions 是有名字并且 capture 封闭函数中值的闭包/...
2018-06-19 11:23:57 125
原创 Swift- 属性
//存储属性存储常量或变量作为实例的一部分,计算属性计算并返回一个值 //存储属性只能用于 Class, struct, 计算属性可以用于 Class, struct, enum //存储属性可以是常量, 变量, 计算属性必须为变量 //1. 存储属性 struct FixedLengthRange { var fi...
2018-06-19 11:20:17 325
原创 Swift- 方法(Methods)
private var age = 10 class Counter1 { var count: Int = 0 func increment() { count += 1 } func incrementBy(by amount: Int) { count +...
2018-06-19 11:19:54 253
原创 Swift- 类和结构体
//Swift 中类和结构体的共同点: //1. 定义属性用于存储值 //2. 定义方法用于提供功能 //3. 定义下标用于访问值 //4. 定义构造器用于生成初始化值 //5. 通过扩展以增加默认实现的功能 //6. 符合协议以对某类提供标准功能 //Class 不同于 Struct...
2018-06-15 16:33:18 255
原创 Swift- 枚举
//1. 枚举语法 enum SomeEnumeration { // enumeration definition goes here } //eg1. enum CompassPoint { case North case South ...
2018-06-15 16:31:38 219
原创 Swift- 闭包
//闭包closures 类似于 OC的 block, 闭包可以捕获(capture)并且存储代码块中指向常量或变量的指针 //Global and nested functions 都是闭包的特例, 闭包有三种形式: //(1)Global functions 是有名字但是没有 capture 任何值的闭包 //(2)Nested functions 是...
2018-06-15 16:30:45 315
原创 Swift- 函数
//函数(Function) //函数表达形式: //func functionName(argumentLabel parameterName: type) -> return type { // 函数体 //} //argumentLabel 在函数调用时使用, 没有则默认 parameterN...
2018-06-15 16:26:51 308
原创 Swift- 控制流
//Swift 中的控制流语句有: while, if, guard, switch, for in, where break, continue //一. For in //用于遍历 Strings, Array, dictionary, Set, ranges等 //for in 循环中的局部变量如 name 是一个 let 值...
2018-06-15 16:25:28 206
原创 Swift- 集合
//一. 数组(Array) //同 OC 一样, array 是有序的, 其它两个无序 //可变 var, 不可变 let //Array(Dictionarie, Sett)类型写法: Array<存储数据类型> 或者 [存储数据类型] 一般使用第二种 //1. 数组初始化方法,创建一个空数组 var ...
2018-06-15 16:23:09 423
原创 Swift- 字符串和字符
//一. 字符串(Strings)和字符(Characters) //Swift中导入Foundation框架可以使用NSString 的方法 //1. 单行String, 用双引号 let someString = "Some string literal value" //2. 多行String, 三个双引号.每...
2018-06-15 16:21:42 773
原创 Swift- 运算符和 Range
//一. 基本运算符(Basic Operators) //数字运算符,逻辑运算符等大多数标准的C语言运算符,数字运算符可以检测运算结果避免溢出(超出存储类型允许的值的范围) //1. 一元运算符(Unary operators) //赋值运算符(Assignment Operator): = let...
2018-06-15 16:19:06 1420
原创 Swift- 元组和可选类型
一. 元组(Tuples)元组适合临时的相关的数据,如函数返回值,不适合复杂的数据结构,复杂的数据结构用类(class)或结构体(structure)定义//1. 元组的定义//元组包含多个值,每个值的类型可以不同let http404Error = (404, "Not Found")...
2018-06-15 16:08:40 235
转载 Cornerstone 忽略文件、文件夹(类似.ignore)
前提在项目开发的时候,无论是单人开发还是多人协作开发,通常会使用svn服务器,mac上最好的管理工具就是Cornerstone了,我们在使用Cornerstone的时候,有时候需要添加一些特定的忽略文件或者文件夹,这就需要我们添加一些配置。注意: 远程服务器上已经存在的文件夹是ignore不了的添加配置1、首先找到Cornerstone的Subversion 2、到github上找到需要添加的忽略...
2018-06-15 15:33:34 1573
原创 CocoaPods 使用
iOS安装CocoaPods详细过程 - 简书安装最后一步: pod setup 太慢,总是失败解决办法到 github.com/CocoaPods/S… 把文件clone下来,默认文件夹名字为Specs-master 前往文件夹 ~/.cocoapods/repos 终端cd到你的工程目录中执行pod setup,等待一会,等到开始下载的时候,会发现在~/.cocoapods/...
2018-06-14 09:19:56 252
原创 iOS searchPath
import 双引号和尖括号:双引号:是指先在项目源码中目录搜索然后再进行系统目录搜索尖括号:是指先系统目录中搜索然后再源码目录中搜索eg:这就意味着,当系统里(如/usr/include/里)有一个叫做math.h的头文件,而你的源代码目录里也有一个你自己写的math.h头文件,那么使用尖括号时用的就是系统里的,而使用双引号的话则会使用你自己写的那个Swift 和 OC 混...
2018-06-14 09:12:12 232
原创 iOS(Swift) 多线程GCD
GCD(Grand Central Dispatch)是基于C语言开发的一套多线程开发机制,也是目前苹果官方推荐的多线程开发方法。相对于 NSThread 和 NSOperation,GCD抽象层次最高,使用起来也最简单,只是它基于C语言开发,并不像NSOperation是面向对象的开发,而是完全面向过程的。这种机制相比较于前面两种多线程开发方式最显著的优点就是它对于多核运算更加有效。GCD......
2018-06-14 09:11:48 2180
原创 Swift------闭包封装网络请求
本文使用语言为 Swift4import UIKitimport Alamofireimport MBProgressHUDimport SwiftyJSONclass HTTPRequestTool: NSObject { //创建网络请求单例 static let defalut: HTTPRequestTool = { return ...
2018-06-13 17:38:59 335
原创 ios tabBar 和 navigation 嵌套使用中的退出登录问题
接手一个项目, 其中有一个登录超时的功能未实现, 在实现的过程中遇到了一些问题.记录下来, 也给其他遇到相似问题的人一些参考项目的层级结构如下图:实现超时退出功能的思路:在网络请求方法中, 根据返回的 json 字符串中的 code 值判断, 如果 code 为约定的值, 则退出登录.错误方法:因为对层级关系理解的不够清楚, 刚开始走了很多弯路, 使用了一...
2018-06-12 17:50:13 790
原创 iOS pop到指定视图报错
在 iOS 开发中主要使用 navigationController 和 present 进行视图跳转.navigationController 使用堆栈管理要进行跳转的 controller, push 执行入栈操作; pop执行出栈操作.这些 controller 存放在 navigationController 的 viewControllers 数组中.pop 方法有三种,...
2018-06-12 11:13:56 968 1
转载 ios 获取当前视图控制器
做iOS开发的时,很多时候我们需要对获取当前所在的ViewController,搜了一下,大多数答案都不靠谱,都不能正确获取到当前的控制器,不一定能获取到当前的ViewController,于是自己写了一个方法iOS自带的ViewController有两种一种是普通控制器:UIViewController, UITableViewController, UISearchBarCont...
2018-06-12 11:11:38 1699
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人