自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LSL_LSL1314的博客

每个人成长的脚步都不同,但他们都有着共同的特点——脚踏实地。

  • 博客(28)
  • 收藏
  • 关注

转载 iOS之富文本

随着iOS6 API的发布,文字显示的API越来越完善,其中一个重要的更新是在UITextField,UITextView和UILabel中加入了对AttributedString的支持,实现行距控制,字距控制,段落控制等高级功能也不必再去使用深奥的CoreText框架。而iOS7的发布,苹果又引入了TextKit,TextKit是一个快速而又现代化的文字排版和渲染引擎。

2015-10-29 01:17:53 551

转载 GCD 之线程死锁问题

GCD 之线程死锁转自:http://www.cnblogs.com/tangbinblog/p/4133481.htmlGCD 确实好用 ,很强大,相比NSOpretion 无法提供 取消任务的功能。如此强大的工具用不好可能会出现线程死锁。 如下代码:- (void)viewDidLoad{ [super viewDidLoad];

2015-10-25 16:19:21 536 1

原创 iOS开发中常用的第三方插件和框架小结

一:插件1.图片补全插件:比如说你只有@3x的图片想要@2x的图片又不想麻烦美工妹妹,即可使用此神器:https://github.com/rickytan/RTImageAssets2.不解释cocoapods第三方框架快速集成插件,开发必备:https://github.com/kattrali/cocoapods-xcode-plugin二:框架

2015-10-20 21:09:21 657

原创 关于xcode6升xcode7之后多window时,程序的状态栏管理问题

关于xcode6升xcode7之后多window时,程序的状态栏管理问题在iOS6到iOS8时,我们设置app的状态栏样式,一般把info.plist里面设置了View controller- based status bar appearance为NO,默认为YES,来应用程序来管理。这样的话多window时,并不会有影响状态栏的样式,因为状态栏是由应用UIApplication来管

2015-10-20 13:40:53 631

原创 Swift 读取本地json文件时的异常捕获(try catch)的使用

Swift 读取本地json文件时的异常捕获(try catch)的使用// 1.获取文件路径 let path = NSBundle.mainBundle().pathForResource("xxx.json", ofType: nil)! // 2.根据文件创建 let data = NSData(contentsOfFile: path

2015-10-20 01:57:32 2916

原创 Swift中的打印日志的配置

Swift中的打印日志的配置/** * 定义日志打印输出方法 * * message: 具体的输出内容 * file: 项目名称 * method: 方法名称 * line: 第几行代码 */func LSLLog(message: T, file: String = __FILE__, method: String = __FUNCTION__, line

2015-10-20 01:49:40 930

原创 Swift2.0——构造方法的使用

构造方法的使用import Foundation/*继承与构造方法:指定构造与便利构造方法*/class Person { var name:String var age:Int // 指定构造方法都是以init开头的 init(name:String, age:Int) { self.name = name

2015-10-20 01:37:45 763

原创 Swift基础篇——析构方法

析构方法import Foundation/*析构方法对象的内存被回收前夕被隐式调用的方法, 对应OC的dealloc方法主要执行一些额外操作, 例如释放一些持有资源, 关闭文件, 断开网络等*/class FileHandler{ var fd: Int32? // 文件描述符 // 指定构造器 init(path:String){ /

2015-10-20 01:33:33 417

原创 Swift基础篇——内外函数

内外函数import Foundation/*内部函数: 默认情况下的参数都是内部参数外部函数: 如果有多个参数的情况, 调用者并不知道每个参数的含义, 只能通过查看头文件的形式理解参数的含义 那么能不能和OC一样让调用者直观的知道参数的含义呢? 使用外部参数 外部参数只能外部用, 函数内部不能使用, 函数内部只能使用内部参数*/func divis

2015-10-20 01:30:26 619

原创 Swift基础篇——内存相关

内存相关import Foundation/*Swift内存管理:管理引用类型的内存, 不会管理值类型, 值类型不需要管理内存管理原则: 当没有任何强引用指向对象, 系统会自动销毁对象(默认情况下所有的引用都是强引用)如果做到该原则: ARC*/class Person { var name:String init(name:String){

2015-10-20 01:27:44 443

原创 Swift基础篇——枚举

枚举import Foundation/*Swift枚举:Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法格式:enum Method{ case 枚举值}*/enum Method{// case Add// case Sub// case Mul// case Div

2015-10-20 01:25:09 387

原创 Swift基础篇——可选值

可选值import Foundation/*可选值: optionals有两种状态: 1.有值 2.没有值, 没有值就是nil*///有值:var optValue1: Int? = 9//没有值:var optValue2: Int?var optValue3: Int? = nil/*可选值可以利用if语句来进行判断*/var optValue4: Int?

2015-10-20 01:22:34 368

原创 Swift基础篇——结构体

结构体import Foundation/*结构体:结构体是用于封装不同或相同类型的数据的, Swift中的结构体是一类类型, 可以定义属性和方法(甚至构造方法和析构方法等)格式:struct 结构体名称 { 结构体属性和方法}*/struct Rect { var width:Double = 0.0 var height:Double = 0.0

2015-10-20 01:20:14 454

原创 Swift基础篇——单例

单例import Foundationclass NetWorkingTools:NSObject { // func == - // class func == + // 方法一: /* static var onceToken: dispatch_once_t = 0; static var _instance: Netw

2015-10-20 01:17:15 326

原创 Swift基础篇——懒加载

懒加载import UIKitclass ViewController: UIViewController { // 只有外界访问到listData的时候才会去执行闭包, 然后将闭包的返回值赋值给listData // 注意: 一定要记住闭包后面需要写上(), 代表执行闭包 lazy var listData: [String]? = { ()->[

2015-10-20 01:15:04 356

原创 Swift基础篇——闭包

闭包import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() /* OC: block类似于匿名函数, 用于封装代码块, 在特定的时候执行, 执行一些耗时操作

2015-10-20 01:12:51 350

原创 Swift基础篇——setter和getter的使用

setter和getterimport Foundationclass Student:NSObject {// MARK: - 不推荐使用直接写setter和getter这样的方法 /* var _name: String? var name: String? { set{ _name = newValue

2015-10-20 01:08:19 590

原创 Swift基础篇——构造函数

构造函数import Foundation/** Swift中要求在创建一个类时必须给这个类中所有的属性进行初始化 如果不能在创建对象时给这个类中所有的属性进行初始化, 那么这些属性必须是可选的 如果已经在构造方法中对所有的属性进行了初始化, 那么这些属性就可以不是可选类型 在给某一个类指定属性的数据类型时, 如果该属性是对象类型, 那么可以指定为可选类型

2015-10-20 01:04:58 442

原创 Swift基础篇——函数

函数import UIKit/*:函数* 格式func 函数名称(形参列表) ->返回值类型{代码}* Void == ()*/// 1.没有参数没有返回值func say() -> Void{ print("hello")}say()// 如果没有返回值可以简写func say1() -> (){ print("hello")}s

2015-10-20 01:00:54 379

原创 Swift基础篇——字符串

字符串import UIKit/*:字符:* OC: char charValue = 'a';*/var charValue1:Character = "a"/*:Swift和OC字符不一样* 1.Swift是用双引号* 2.Swift中的字符类型和OC中的也不一样, OC中的字符占一个字节,因为它只包含ASCII表中的字符, 而Swift中的字符除了可以存储ASC

2015-10-20 00:59:23 381

原创 Swift基础篇——字典

import UIKit/*:字典* 格式 var dict: Dictionary* 注意: 将OC的{}换成了[]* 可变和不可变 var/let*///var dict: Dictionary//var dict: [String: String]var dict = ["name": "Swift", "age": "99"]dict// 企业开发中字典使用得最

2015-10-20 00:57:52 427

原创 Swift基础篇——数组

数组/*:数组* 格式 var arr: Array / var arr: [Int]* 可变和不可变 var/let*/// 定义不可变数组...let arr99 = [99]// 定义可变数组//var arr: Array//var arr: [Int]//arr = [1, 2]var arr = [1, 2]// 1.遍历数组(取值)arr[0]f

2015-10-20 00:56:27 326

原创 Swift基础篇——循环

import UIKit/*:传统for* 基本用法和OC一致* for后面的()可以省略* for后面的{}不可用省略* Swift开发中不建议使用传统for循环* for后面的三个参数都可以省略,如果省略循环保持语句, 那么默认为真*/forvar i = 0; i <10; i++{   

2015-10-20 00:53:16 348

原创 Swift基础篇——可选类型

可选类型import UIKitvar str = "Hello, playground"// 可选类型/*:可选类型* 什么是可选类型: 一个变量可以有值也可以没有值, 我们就称之为可选类型* 在Swift中如果使用一个可选类型的变量/常量, 必须解包操作* 解包: 只需要在变量/常量后面加上 !* !含义: 代表告诉系统该变量/常量中一定有值, 如果强制解包一个没有值的

2015-10-20 00:51:24 387

原创 Swift基础篇——分支

分支import UIKit// if/*:if* 大部分用于和OC中一致* Swif中条件语句可以不用写()* OC中如果if后面只有一条语句, 那么{}可以省略, 但是Swift不行* OC中条件语句可以是任何数值, OC中非0即真, YES/NO* Swift中条件语句的取值必须是Bool类型, 也就是说Swift中提供了真正的Bool类型, true/false*/

2015-10-20 00:49:18 372

原创 Swift基础篇——元祖

元祖import UIKit// 元祖/*:元祖* 复合数据类型* 只要将多个相同或者不同的数据用()括起来就是元祖* 优点: 在以前没有元祖之前C和OC语言是通过传入指针或者返回结构体的方式来返回多个值的, 而有了元祖之后就可以实现让一个函数返回多个值*/let student = ("hello", 99, 99.8)print(student)print(stude

2015-10-20 00:46:01 629

原创 Swift基础篇——常量和变量

/*:创建对象* OC: [[UIView alloc] init] [[UIView alloc] initWithFrame:]* Swift: UIView() UIView(frame: )* 从OC转换为Swift的规律: alloc initXXX --> (xxxx:)分号* 在OC中每一条语句后面必须跟上一个;“, Swift中如

2015-10-20 00:43:16 399

原创 浅谈——iSO9前后通信录API的使用变迁史

iOS9之后新增了一些通讯录的API,使用更加的面向对象和方便了。。。

2015-10-08 19:59:48 548

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除