Mega Man is off to save the world again. His objective is to kill the Robots created by Dr. Wily whose motive is to conquer the world. In each mission ...
分类:
其他好文 时间:
2017-08-31 17:53:39
阅读次数:
230
最近看了两本书,《Objective-C 高级编程,iOS与OS X多线程和内存管理》,《Effective Object-C2.0》。iOS开发必看的两本书,非常推荐。但是看内存管理的时候有一句话非常不理解:自己生成并持有对象,引用计数为1。后面还有一句:对象alloc的时候默认引用计数为1。自己 ...
分类:
移动开发 时间:
2017-08-31 16:18:40
阅读次数:
212
简介 OC这门语言把很多事情从编译和链接阶段推迟到运行时处理。只要有可能,它就会采取动态运行时机制。这意味着这门语言不仅需要一个编译器还需要一个运行时系统来执行这些编译后的代码。这个运行时系统相当于OC语言的操作系统,它使得这门语言运转良好。 Runtime版本和平台 Objective-C run ...
分类:
其他好文 时间:
2017-08-30 15:39:35
阅读次数:
208
1: 实现 description 方法 NSlog 在输出自定义的类时, 只输出了 类名 和 对象的内存地址. 要想输出更为有用的信息也很简单, 只需要覆写 description 方法并将描述此对象的字符串 返回即可. - (NSString*)description{ return xxxxx ...
分类:
移动开发 时间:
2017-08-29 12:48:05
阅读次数:
248
1: 理解 属性 的概念 属性会自动生成存取方法, 可以利用点语法调用, 若不想编译器自动合成存取方法, 可以自己实现, 还有另外一种方法, 就是使用 @dynamic 关键字, 它会告诉编译器, 不要自动创建实现属性所用的实例变量 和 存取方法, 而且,在编译访问属性的代码时, 即使编译器发现没有 ...
分类:
移动开发 时间:
2017-08-25 14:02:16
阅读次数:
199
void foo(int (^blkParam)()){ NSLog(@"foo param %d",blkParam()); } void run() { //定义 返回值类型 (^block的名称)(参数类型) = ^返回值类型(参数) {...}; void (^blk)(void) = ^{... ...
分类:
其他好文 时间:
2017-08-24 10:19:32
阅读次数:
181
本条要点:(作者总结) 在 Objective-C 中,如果有多个线程要执行同一份代码,那么有时可能会出问题。这种情况下,通常要使用锁来实现某种同步机制。在 GCD 出现之前,有两种办法,第一种是采用内置的 “同步块”(synchronization block): ...
分类:
其他好文 时间:
2017-08-20 14:56:58
阅读次数:
127
在ionic3 打包的app,如果要实现代码来控制应用程序的推出。 在android以下代码是可以的,但是在ios是不支持的。因为这不适用于ios app,因为苹果apple 不允许应用程序以编程的方式退出。他可以通过ios-objective-C来完成,可是这样的应用程序在 app store 是 ...
分类:
移动开发 时间:
2017-08-19 19:58:09
阅读次数:
602
1、区别:+load 是只要类所在文件被引用就会被调用,而 +initialize 是在类或者其子类的第一个方法被调用前调用。所以如果类没有被引用进项目,就不会有 +load 调用;但即使类文件被引用进来,如果没有使用,那么 +initialize 也不会被调用。 2、相同点:方法只会被调用一次。 ...
分类:
其他好文 时间:
2017-08-19 13:04:20
阅读次数:
180
1. block的本质是一个Objective-C的对象。为什么这么说? 在Objective-C中。runtime会在执行时依据对象的isa指针的指向,来度额定这个对象的类型。也能够觉得一个对象。它具有isa指针。就是一个OC对象 2. 你怎么知道block有isa指针呢。我们能够通过clang命 ...
分类:
移动开发 时间:
2017-08-19 10:51:24
阅读次数:
206