树的芳香由风决定,人生的芳香由自己决定!
1、类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类。 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类。 2)分类/类别(category):允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量)。
1、常见文件扩展名 .c C 语言源文件 .cc、.cpp C++ 语言源文件 .m Objective-C 源文件 .
前言 Swift 语言中的 @available 和 #available,Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用 @available 声明这些类型的生命周期依赖于特定的平台和操作系统版本。
1、Swift 2.0 带来哪些新变化 常规变化: 1、OS X 10.11、iOS 9 和 watchOS 2 SDK 采纳了一些 Objective-C 的特性用来提高 Swift 的编程体验, 如可空性、类型化集合和一些别的特性。
1、Subscript 下标脚本允许你通过在实例后面的方括号中传入一个或者多个的索引值来对实例进行访问和赋值。语法类似于实例方法和计算型属性的混合。与定义实例方法类似,定义下标脚本使用 subscript 关键字,显式声明入参(一个或多个)和返回类型,每个输入参数的类型也没有限制,返回值可以是任何类型,并无限制。
1、Closure 闭包在 Swift 中非常有用。通俗的解释就是一个 Int 类型里存储着一个整数,一个 String 类型包含着一串字符,同样,闭包是一个包含着函数的类型。有了闭包,你就可以处理很多在一些古老的语言中不能处理的事情。
前言 单例对象能够被整个程序所操作。对于一个单例类,无论初始化单例对象多少次,也只能有一个单例对象存在,并且该对象是全局的,能够被整个系统访问到。 单例类的创建 1.1 单例类的创建 1 单例类的创建 class SingleClass1 { var text:St...
前言 采用 SQLite 数据库来存储数据。SQLite 作为一中小型数据库,应用 iOS 中,跟前三种保存方式相比,相对比较复杂一些。 注意:写入数据库,字符串可以采用 char 方式,而从数据库中取出 char 类型,当 char 类型有表示中文字符时,会出现乱码。
前言 public class NSFileManager : NSObject public class NSFileHandle : NSObject, NSSecureCoding NSFileManager 是 Foundation 框架中用来管理和操作文件、目录等文件系统相关联内容的类。
前言 直接将数据写在代码里面,不是一种合理的做法。如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展性低。因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据。如果要变动数据,直接修改数据文件即可,不用修改代码。
前言 public class NSUserDefaults : NSObject 用来保存应用程序设置和属性、用户保存的数据。用户再次打开程序或开机后这些数据仍然存在。如果往 userDefaults 里存了一个可变数组,取出来的时候这个数组对象就变成了不可变的。
前言 public class NSKeyedArchiver : NSCoder public class NSKeyedUnarchiver : NSCoder 在 OC 语言中,归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象。
1、Sandbox 沙箱 iOS 为每个应用提供了独立的文件空间,一个应用只能直接访问为本应用分配的文件目录,不可以访问其他目录,每个应用自己独立的访问空间被称为该应用的沙盒。也就是说,一个应用与文件系统的交互绝大部分都被限制在它自己的应用沙盒内。
前言 public class NSNull : NSObject, NSCopying, NSSecureCoding 作为占据空间的一个空值,如用在数组或字典中占据一个没有任何值的空间。 1、NSNull 的创建 // 返回一个单例类对象 let nl:NSNull ...
前言 public class NSProcessInfo : NSObject 1、获取系统进程信息 // 创建系统进程信息对象 let processInfo:NSProcessInfo = NSProcessInfo.
前言 public class NSTimer : NSObject 作用 在指定的时间执行指定的任务。 每隔一段时间执行指定的任务。 1、定时器的创建 当定时器创建完(不用 scheduled 的,添加到 runloop 中)后,该定时器将在初始化时指定的 ti 秒后自动触发。
前言 public class NSEnumerator : NSObject, NSFastEnumeration 1、迭代器 let arr:NSArray = ["bei", "jing", "huan", "ying", "nin"] let dic:NSDictio...
前言 NSDate public class NSDate : NSObject, NSCopying, NSSecureCoding NSDate 用来表示公历的 GMT 时间(格林威治时间)。
前言 public class NSTimeZone : NSObject, NSCopying, NSSecureCoding NSTimeZone 表示时区信息。 1、NSTimeZone 时区的创建 // 根据时区名称创建 let zone1:NSTimeZone...
前言 public class NSLocale : NSObject, NSCopying, NSSecureCoding NSLocale 类返回本地化信息,主要体现在"语言"和"区域格式"这两个设置项。
前言 public class NSCalendar : NSObject, NSCopying, NSSecureCoding NSCalendar 对世界上现存的常用的历法进行了封装,既提供了不同历法的时间信息,又支持日历的计算。
前言 public class NSNumber : NSValue public class NSDecimalNumber : NSNumber NSNumber 可以被赋值为各种数值类型。
前言 public class NSValue : NSObject, NSCopying, NSSecureCoding 将任意数据类型包装成对象。 1、比较两个 NSValue 类型数据的大小 let value1:NSValue = NSValue(point: NSMak...
前言 public class NSData : NSObject, NSCopying, NSMutableCopying, NSSecureCoding public class NSMutableData : NSData NSData 和它的可变长子类 NSMutableData 是字节缓冲区的对象化封装。
前言 public struct Dictionary : CollectionType, DictionaryLiteralConvertible public class NSDictionary : NSObject, NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration 字典用于存储无序的数据元素值,它可以存储任何类型的元素,甚至可以将数组作为字典的元素。
前言 Set:集合 public struct Set : Hashable, CollectionType, ArrayLiteralConvertible public class NSSet : NSObject, NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration 集 NSSet 是一个无序对象的集合。
前言 public struct Array : CollectionType, MutableCollectionType, _DestructorSafeContainer public class NSArray : NSObject, NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration 在 Swift 语言中,数据在被存储进某个数组之前,类型必须明确,且与数组其他元素类型相同。
前言 public struct String public class NSString : NSObject, NSCopying, NSMutableCopying, NSSecureCoding Swift 语言主要使用 String 和 Character 来存储字符数据。
前言 结构体,这个结构体用来表示事物的坐标点和宽高度。 public typealias NSRect = CGRect public struct CGRect { public var origin: CGPoint public var s...
前言 结构体,这个结构体用来表示事物的宽度和高度。 public typealias NSSize = CGSize public struct CGSize { public var width: CGFloat public var heig...
前言 结构体,这个结构体用来表示事物的一个坐标点。 public typealias NSPoint = CGPoint public struct CGPoint { public var x: CGFloat public var y: CG...
前言 Range:结构体,这个结构体用来表示一个区间的范围。 public struct Range : Equatable, CollectionType, CustomStringConvertible, CustomDebugStringConvertible NSRange:结构体,这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围。
1、Struct 的创建 1.1 基本定义 结构体的定义 // 定义结构体数据类型 struct BookInfo { // 每个属性变量都必须初始化 var ID:Int = 0 var Na...
前言 框架是由许多类、方法、函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易。 Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架。 Cocoa :是指 Foundation 、Core Data 和 AppKit(Application Kit)框架。
1、iOS 开发技术体系 iOS 开发技术体系图: 层级 主要框架 Cocoa Touch UIKit 等 Media Core Graphics 、OpenGl ES、Core Animation 等 Core Services Core Data、Foundation 等 Core OS Accelerate Framework、External Accessory Framework、Security Framework、System 等 从图中可以看到,要想编写成型的产品,需要的不仅仅是语言本身,同时许多库需要协同使用。
1、类输出 Swift 语言中类输出方法重构: override var description: String{ return String(format: "%@, %@", self.lastName, self.firstName) } 2、命令行输入 在 Swift 语言中添加命令行输入函数: 创建 C 语言的 .c 和 .h 及 桥接 文件,并添加自定义输入函数。
前言 在 Swift 语言中,我们可以使用 Objective-C、C 语言编写代码,我们可以导入任意用 Objective-C 写的 Cocoa 平台框架、Objective-C 框架或 C 类库。
前言 作为一种可与 Objective-C 相互调用的语言,Swift 也具有一些与 C 语言的类型和特性,如果你的代码有需要,Swift 也提供了和常见的 C 代码结构混合编程的编程方式。 1、基本数据类型 Swift 提供了一些和 C 语言的基本类型如 char,int,float,double 等价的 Swift 基本数据类型。
前言 在 Swift 1.0 时代是没有异常处理和抛出机制的,如果要处理异常,要么使用 if else 语句或 switch 语句判断处理,要么使用闭包形式的回调函数处理,再要么就使用 NSError 处理。
1、面向对象 面向过程:面向过程编成将所要解决的问题按解决问题的步骤进行分析。如果是大问题,就分解成为多个不同的小问题,在程序里叫做划分成不同的模块。每一个解决的步骤可能是一行或者几行代码,也可能是一个函数。
前言 Swift 全面支持 Unicode 符号。 Swift 中的定义和实现是在同一个单元中的,通常一个 Swift 源代码单文件是以 “.Swift” 结尾的。 Swift 不需要单独编写一个 main 函数作为入口,在 Swift 语言中函数是一等成员,编译器会自动将遇到的第一个函数作为入口。
1、Socket 套接字 所谓 Socket,通常称为 “套接字”,网络应用程序通过套接字向网络发送请求或者应答网络请求。Socket 通常用于描述 IP 地址和端口,是应⽤层与 TCP/IP 协议族通信的中间软件抽象层,它是一组接口,是一个通信链的句柄,可以用来实现不同虚拟机或者不同计算机之间的通信。
1、BSDSocket 一套 unix 系统下的 socket API(纯 C)。 iOS 系统基于 unix,所以支持底层的 BSD Socket,在 Xcode 中可以直接使用。 2、基本使用 2.
1、ZipArchive 方式 ZipArchive 只能对 zip 类文件进行压缩和解压缩 GitHub 网址:https://github.com/ZipArchive/ZipArchive ZipArchive 使用 ARC 添加 ZipArchive // 添加第三方库文件 ZipArchive // 包含系统动态库 libz.
1、CFSocket 苹果对对底层 BSD Socket 进行轻量级的封装(纯 C)。 主要使用的 API:CFSocekt 用于建立连接,CFStream 用于读写数据。 2、基本使用 2.1 Client 客户端 TCP 客户端 // 包含头文件 #import ...
1、Widget iOS extension 的出现,方便了用户查看应用的服务,比如用户可以在 Today 的 widgets 中查看应用的简略信息,然后点击进入相关的应用界面。 2、添加 Widget 添加 Widget 流程 1、添加 Today Extension 2、绘制 UI 3、调起 app 4 、数据共享 2.
1、3DTouch 简介 3DTouch 是 iOS9 + 系统下,在 iPhone6s(iPhone6s Plus)+ 手机上才能够使用的功能。 1.1 3DTouch 基本类型 1、主屏幕快速选项(Home Screen Quick Action) 通过主屏幕的应用图标,通过 3D 手势呼出一个菜单,在主屏幕上的应用 Icon 处,直接进入应用的相应功能模块。
前言 NS_CLASS_AVAILABLE(10_10, 8_0) @interface LAContext : NSObject 指纹识别功能是 iPhone 5s 推出的,SDK 是 iOS 8.0 推出。
1、AsyncSocket 基于 CFSocket、GCD 进行的封装(OC)。 支持 TCP 和 UDP。 完整的回调函数(用于处理各种回调事件,连接成功,断开连接,收到数据等)。 需要注意的问题: 1、Socekt 连接成功回调方法中主动调用:[self.socket readDataWithTimeout:-1 tag:0];,相当于主动添加一个读取请求,不然不会执行读取信息回调方法。
1、