Objective-C
文章平均质量分 72
「已注销」
这个作者很懒,什么都没留下…
展开
-
Objective-C 枚举的使用
在C、C++、Java这些语言中就有它们对应的枚举,定义的方式也多种多样,但使用目的只有一个:让代码可读性更强。这里我们只简单说说Objective-C中枚举的使用。在Apple提供给我们的API中,经常会看到使用枚举的例子:有这样的:typedef NS_ENUM(NSInteger, UIViewAnimationTransition) { UIViewAnimationT原创 2016-11-28 14:20:12 · 1497 阅读 · 0 评论 -
iOS 判断系统版本
由于各种原因,程序需要兼容iOS以前的版本,那么设置一个较低的部署目标和基于特定iOS版本的代码分支,就显得很有必要了。 举个例子: 以前我们判断iOS版本会如下写: if ([[[UIDevice currentDevice].systemVersion substringToIndex:1] intValue] >= 7) { // iOS 7.0 及以后的版本原创 2017-02-27 17:40:30 · 10483 阅读 · 0 评论 -
iOS 如何巧妙解决“一个任务需要等待另外一个任务完成后才可以执行”的问题
看到标题,我想大部分iOS开发的童鞋能想到好几种方案。比如下一个网络请求必须依赖上一个网络请求的结果才可以进行,最简单直白的方法是:“同步调用”。这里所说的同步是指,等上一个网络请求任务完成后,直接在返回数据的delegate或者block中执行下一个网络请求。但是,如果碰到我下面这种情况呢?假设现在有三个任务:任务1: 通过网络请求检测一种状态,这是一个网络耗时的操作。任务2:原创 2017-08-17 18:03:20 · 13547 阅读 · 1 评论 -
iOS 用密钥对数据加密解密
引言在iOS App应用开发中,我们需要对用户的个人私密信息进行加密处理,从而保证用户信息的安全性。 这里所说的用户私密信息,如用户的账户,密码等等。为了保证数据的安全性,我们可以将这些私密信息保存到钥匙串(keychain)中,因为钥匙串的不可见性,可以保证用户私密信息的安全。 有一点要说明的,钥匙串中存入明文的私密信息,这是不安全的。我们可以将用户私密信息通过算法加密后再存进钥匙串中,这样就原创 2020-03-10 11:16:52 · 3545 阅读 · 3 评论 -
-initWithData: encoding:返回nil的解决办法
方法:-initWithData: encoding: 返回nil原创 2017-06-07 14:21:48 · 4056 阅读 · 0 评论 -
iOS 盲人模式开发
iOS 盲人模式的开发原创 2017-04-13 15:53:21 · 4266 阅读 · 0 评论 -
iOS block中使用self的那么事
我们在使用block的时候,如果在block是引用self有可能会循环引用,产生内存泄漏的问题。通常,我们如果遇到这种情况,我们会将self转换成weak automatic的变量,这样就避免了block对self强引用。原创 2017-01-22 12:03:34 · 2947 阅读 · 0 评论 -
Objective - C 断言处理
概述我们在阅读一些有名的源码时,经常会碰到这样的编写:- (AFURLSessionManagerTaskDelegate *)delegateForTask:(NSURLSessionTask *)task { NSParameterAssert(task); AFURLSessionManagerTaskDelegate *delegate = nil; [s原创 2016-12-23 15:36:51 · 695 阅读 · 0 评论 -
Objective-C 内存管理
概述 在OC中没有垃圾回收机制,内存管理是依赖对象引用计数器来进行的:在OC中每个对象内部都有一个与之对应的整数(retainCount),叫“引用计数器”,当一个对象在创建之后它的引用计数器为1,当调用这个对象的alloc、retain、new、copy方法之后引用计数器自动在原来的基础上加1(ObjC中调用一个对象的方法就是给这个对象发送一个消息),当调用这个对象的release方法之后它原创 2016-03-08 17:20:27 · 479 阅读 · 0 评论 -
Objective-C 代码混淆(自动)
为了防止他人通过class-dump反编译我们的APP后,嵌入恶意代码,我们有必要对源码进行混淆。就其原理,就是用一个随机的字符串在App编译前替换我们需要混淆的关键字,让别人反编译之后也是一脸懵逼,无从下手。这里简单说一下,混淆的时候要注意那些事项: 不能对Apple系统的API做混淆,不然就会编译不过,甚至导致程序crash; 不能对IBAction类型的方法和IBO...原创 2018-03-21 18:37:16 · 1609 阅读 · 0 评论