Swift闭包 1.闭包闭包(Closures)是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。 1.1.语法123{(parameters) -> return type in statements} 示例: 12345let divide = {(param1: Int, param2: Int) -> Int in return param1 2018-08-15 Swift #block #循环引用 #Swift
Swift一览 1.运算符Swift的Int类型不在支持自增减运算符,比如 ++a, -—a,a-—,a++。 要支持这种方法,须重载运算符: 12345678910111213141516171819202122232425262728293031extension Int { //前缀++ static prefix func ++(num:inout Int) -> Int 2018-08-12 Swift #Swift
内存分配 分区及职责 栈区(stack):存放局部变量和方法实参。 堆区(heap):存放OC中使用new等方法创建的对象。 全局(静态)区:包括以下两个分区: 123.1. 数据段(Data segment):初始化的全局变量和静态变量。3.2. BSS段:未初始化的全局变量和静态变量。 常量区(数据段):const、@”x”常量字符串 代码段(Text segment):程序的代码(ELF 2018-07-30 OC #内存管理
内存错误 1、内存错误是啥在C和OC中,你一直在处理指针。指针是存储另一个变量的内存地址的变量。当向一个对象发送消息时,指向该对象的指针将会被引用。这意味着,你获取了指针所指的内存地址,并访问该存储区域的值。 当该存储器区域不再映射到你的应用时,或者换句话说,该内存区域在你认为使用的时候却没有使用,该内存区域是无法访问的。 这时内核会抛出一个异常( EXC ),表明你的应用程序不能访问该存储器区域(BAD 2018-07-25 其他 #异常 #内存管理
异常捕获 线上APP获取崩溃信息的方式: 使用系统 API 收集崩溃信息并上传到服务器。 使用友盟、Bugly 等第三方收集分析SDK。 使用 iTunes Connect 上的崩溃收集服务。 这里暂时只讲第一种。iOS提供了异常发生时的处理API,在程序启动的时候可以添加这样的Handler,这样程序发生异常的时候就可以对异常进行必要的处理。 1void NSSetUncaughtExceptionHa 2018-07-20 OC #异常
设备唯一标识符 1、UDIDUDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列。 1[[UIDevice cuurrent] uniqueIdenfier]; 移动广告商等往往需要通过UDID用来识别玩家用户,并对用户活动进行跟踪。这会泄露用户的隐私信息,所以iOS5.0之后,苹果已被废除此方法,并且禁止使用UDID信息的APP上架。 2、UUIDU 2018-07-15 OC #数据
拷贝 1.拷贝 The exact meaning of “copy” can vary from class to class, but a copy must be a functionally independent object with values identical to the original at the time the copy was made. 上面的摘要描述了拷贝的三个基 2018-06-20 OC #机制
字符串属性 日常实践中,我们经常要声明一些字符串属性,包括NSString和NSMutableString,而字符串最常用的修饰符就要数strong和copy了。这两个修饰符对字符串有什么影响呢? 1.不可变源字符串#示例1:用 NSString 赋值 123456789101112131415161718192021222324252627@interface AppDelegate()@property 2018-06-15 OC #内存管理
属性修饰符 区别1.retain:类似于ARC下的 strong,表示强引用和持有的关系:将属性成员变量的指针指向源对象,同时持有源对象(此对象的引用计数会加1)。 123456789//retain-(void)setName:(NSString *)newName{ if (_name != newName) { [newName retain]; [ 2018-06-12 OC #机制
内存管理:AutoreleasePool MRC1.retain/release123456789@protocol NSObject//...- (instancetype)retain OBJC_ARC_UNAVAILABLE;- (oneway void)release OBJC_ARC_UNAVAILABLE;- (instancetype)autorelease OBJC_ARC_UNAVAILABLE;- (NSUI 2018-05-21 OC #内存管理