
Objective-C
文章平均质量分 67
Zsk_Zane
这个作者很懒,什么都没留下…
展开
-
Objective-C开发编码规范
Objective-C编码规范,内容来自苹果、谷歌的文档翻译,自己的编码经验和对其它资料的总结。转载请注明出处。原出处来自QianKaiLu 概要Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序。关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结:Apple Coding Guidelines f转载 2015-05-12 10:29:56 · 1850 阅读 · 0 评论 -
Objective-C(十一、不可变数组NSArray,可变数组NSMutableArray)——iOS开发基础
不可变数组NSArray,不可变数组NSMutableArray的常用方法,基础知识介绍原创 2015-07-04 15:17:14 · 3746 阅读 · 0 评论 -
Objective-C(十九、通知-消息发送模式之一)——iOS开发基础
通知-消息发送模式之一说明,通知中心,观察者注册、移除,与内存管理相关知识原创 2015-07-12 09:49:51 · 2447 阅读 · 0 评论 -
分类中究竟能不能增加成员变量?
分类中能否增加成员变量的探讨原创 2015-08-11 08:24:53 · 2561 阅读 · 1 评论 -
iOS 集合的深复制与浅复制
概念对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接拷贝整个对象内存到另一块内存中。一图以蔽之再简单些说:浅复制就是指针拷贝;深复制就是内容拷贝。集合的浅复制 (shallow copy)集合的浅复制有非常多种方法。当你进行浅复制时,会向原始的集合发送retain消息,引用计数转载 2015-08-13 19:54:59 · 965 阅读 · 0 评论 -
用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?转载 2015-08-13 19:47:14 · 6206 阅读 · 0 评论 -
setNilValueForKey:could not set nil as the value for the key distance.解决方案
setNilValueForKey:could not set nil as the value for the key distance.解决方案原创 2015-07-22 21:08:03 · 4470 阅读 · 0 评论 -
iOS 浅赋值、深复制、完全复制的知识点梳理验证(附加归档解档)
浅复制(shallow copy)、深复制(one-level-deep copy)、完全复制(true copy)知识点梳理验证及归档解档知识原创 2015-08-15 08:33:45 · 1923 阅读 · 0 评论 -
iOS: 枚举类型 enum,NS_ENUM,NS_OPTIONS
原文地址:点击打开链接一般情况下,我们采用C风格的enum关键字可以定义枚举类型。[cpp] view plaincopyenum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIV转载 2015-12-09 11:06:07 · 1188 阅读 · 0 评论 -
Method Swizzling与JSPatch探究(一)
以下笔记整理于2017-03-22 当时作为无埋点预研的学习整理,由于小组是客户端和前端混合的小组,所以下面尽可能以偏简单的文字在组内分享。用最简单的文字,来简单说明Method Swizzling和JSPatch hook selector的原理。并试验当两者共用时,兼容情况。(无埋点预研)如果看此文之前,对这两者有些概念那就最好啦目录:1、从[receiver messag...原创 2018-08-01 23:09:12 · 268 阅读 · 0 评论 -
Method Swizzling与JSPatch探究(二)
以下笔记整理于2017-03-22 当时作为无埋点预研的学习整理,由于小组是客户端和前端混合的小组,所以下面尽可能以偏简单的文字在组内分享。 第一部分地址为:Method Swizzling与JSPatch探究(一)4、兼容性以hook UIViewController的viewWillAppear的方法为例 4.1 仅method Swizzling, 无JSPatch...原创 2018-08-01 23:12:53 · 485 阅读 · 0 评论 -
iOS首次安装打开APP白屏问题总结
表现最近在负责一个新的APP的开发。最近部门内测,反馈来一些问题,主要表现在首次安装该APP,首次启动,页面白屏没有数据。卸载再装or后台杀死重新打开,就好了原因:先前小范围测试有遇到过,以为是没有允许该APP使用网络请求的原因,当时在设置里面允许了就好了,但那时候同时杀死了APP,再次打开好了。但这不是真正的原因iOS10之后,APP首次安装会有询问【是否允许“xxxAPP”使用数...原创 2018-08-12 22:46:44 · 8309 阅读 · 0 评论 -
Cordova源码学习(一)-JS调用Native
本文只对JS与Native之间的交互进行源码阅读。至于Cordova如何开发插件等等,请参考Cordova官方文档:https://cordova.apache.org/docs/en/latest/JS调用Native流程图流程图 解析index.html 调用 入参分别为 successCallback:成功回调failCallback:失败...原创 2018-09-06 18:31:36 · 1026 阅读 · 0 评论 -
Cordova源码学习(二)-Native回调JS
本文只对JS与Native之间的交互进行源码阅读。至于Cordova如何开发插件等等,请参考Cordova官方文档:https://cordova.apache.org/docs/en/latest/Native回调JS流程图解析Native Native方法执行完,通过sendPluginResult开始,回调结果给jssendPluginResu...原创 2018-09-07 15:40:02 · 984 阅读 · 0 评论 -
关于fishhook
关于fishhook,最近关注到的几篇文章,mark一下目前只是个人简单的学习了其实现原理及应用场景,真正理解全部其实内容挺多的。之前了解过些逆向,所以看起来还算比较流畅,后续有时间实践后再总结下1、fishhook 的实现原理浅析2、fishhook 使用场景&源码分析3、objc_msgSend Hook 精简学习过程4、FBRetainCycleDete...原创 2019-03-31 21:27:48 · 1170 阅读 · 0 评论 -
fishhook学习总结
关于hookOC方法可hook,得益运行时特性,方法调用底层都是msg_send(id,SEL)的形式,这为我们提供了交换IMP的机会函数地址偏移量C函数在编译连接时就确定了函数指针的地址偏移量offset,offset在编译好的可执行文件是固定的,而可执行文件每次被重新装载到内存中时被系统分配的起始地址是不断变化的(lldb用imagelist可以获取运行中的今天静态函数指针地址...原创 2019-07-07 16:22:01 · 1435 阅读 · 0 评论 -
iOS逆向的一点总结
这里写自定义目录标题一张图一些常用的工具一张图之前在http://www.iosre.com/ 上看到的,我觉得整个学习思路非常清晰:一些常用的工具砸壳:越狱市场/clutch/dumpdecryted加壳:对可执行文件的编码进行改变/加密/压缩,达到保护程序代码的目的。App Store下载的ipa包是会加壳的脱壳/砸壳:将未加密的可执行文件还原出来头文件:class-d...原创 2019-06-26 22:17:05 · 529 阅读 · 0 评论 -
iOS内存管理方案之一_TaggedPointer
看一个例子@property (nonatomic, copy) NSString *testStr;{ dispatch_queue_t queue = dispatch_get_global_queue(0, 0); for(int i=0;i<10000;i++) { dispatch_async(queue, ^{ self...原创 2019-07-02 22:34:43 · 532 阅读 · 0 评论 -
Objective-C(十二、快速枚举,枚举器NSEnumerator和集合类NSSet)——iOS开发基础
快速枚举,枚举器NSEnumerator和集合类NSSet的介绍和常用方法原创 2015-07-04 15:27:16 · 2486 阅读 · 0 评论 -
Objective-C(十、NSRange,point,size,rect,NSNumber,NSValue,NSNull)——iOS开发基础
NSRange,NS/CGPoint,NS/CGSize,NS/CGRect,NSNumber,NSValue,NSNull的定义,使用,常用方法,注意要点等原创 2015-07-03 18:21:46 · 1406 阅读 · 0 评论 -
Objective-C(二、类与isa指针,类的封装,set&get,类方法,对象方法)——iOS开发基础
类与isa指针,类定义和声明常见错误分析,类的封装,setter&getter方法,类方法与对象方法区别等等原创 2015-06-25 19:19:28 · 1767 阅读 · 0 评论 -
Objective-C(一、文件扩展名,驼峰标识法,#import与#include,OC弱语法)——iOS开发基础
OC发展概述,文件扩展名,命名规范:驼峰标识法,#import与#include的区别,OC常用数据类型,nil与Nil区别,OC程序编译连接运行过程,OC弱语法等等原创 2015-06-25 17:42:03 · 2087 阅读 · 0 评论 -
Objective-C(三、类与继承,基类,self、super关键字,多态,组合)——iOS开发基础
类与继承,继承优缺点及使用注意要点,基类;self、super作用及使用注意要点;多态产生条件及好处与限制;继承与组合的区别……原创 2015-06-25 21:26:57 · 3760 阅读 · 3 评论 -
Objective-C(五、@class,id类型,类对象构造方法,加载和初始化,description,Logging宏)——iOS开发基础
类的前置声明@class,与#import的比较;id类型;类对象的构造方法alloc,init;加载load和初始化initialize;description方法;几个对Logging有用的宏原创 2015-06-27 16:15:44 · 2084 阅读 · 0 评论 -
Objective-C(四、属性声明与功能,点语法)——iOS开发基础
点语法;属性声明与实现@property和@synthesize;实例变量的可见性,作用域@private,@protected,@public,@package;属性指定选项:assign,retain,copy,strong,weak,nonatomic,atomic,unsafe_unretained等等原创 2015-06-26 12:55:30 · 2325 阅读 · 1 评论 -
Objective-C(六、消息发送机制,选择器和SEL类型)——iOS开发基础
消息发送机制SEL类型,方法在内存中的存储,封装SEL,私有方法,消息搜索,字符串对象转换为selector函数原创 2015-07-01 16:32:40 · 1869 阅读 · 1 评论 -
Objective-C(八、正式协议Protocol,非正式协议informal protocol)——iOS开发基础
协议的概念,语法,注意点,@required,@optional,协议与分类的异同,基协议,实例对象、类成员变量遵循某协议等等原创 2015-07-02 16:30:24 · 1987 阅读 · 0 评论 -
集合类的4种遍历方式Block遍历,快速遍历,枚举器,普通遍历
集合类的4种遍历方式Block遍历,快速遍历,枚举器,普通遍历原创 2015-07-05 15:36:46 · 2035 阅读 · 0 评论 -
IOS ARC 和 非ARC 之间的转换方法
[cpp] view plaincopy1,选择项目中的Targets,选中你所要操作的Target, 2,选Build Phases,在其中Complie Sources中选择需要ARC的文件双击, 并在输入框中输入:-fobjc-arc,如果不要ARC则输入:-fno-objc-arc转载 2015-07-09 17:22:49 · 1577 阅读 · 0 评论 -
Objective-C(十六、内存管理,自动释放池,ARC,强指针,弱指针,方法族)——iOS开发基础
自动释放机制autorelease的创建,基本用法,优缺点等说明;ARC机制的说明,判断释放标准,注意要点;强指针,弱指针的说明;弱指针的自动nil化;方法族;原创 2015-07-09 17:20:03 · 3294 阅读 · 0 评论 -
Objective-C(十七、KVC键值编码及实例说明)——iOS开发基础
KVC键值编码结合实例,详细说明原创 2015-07-09 17:42:57 · 1787 阅读 · 0 评论 -
Objective-C(十四、NSDate类及日期格式化类NSDateFormatter)——iOS开发基础
时间戳,NSDate类的常用方法,时间显示格式的设置NSDateFormatter,时区NSTimeZone等等原创 2015-07-07 21:34:24 · 6229 阅读 · 0 评论 -
Objective-C(十五、内存管理,MRC,循环引用,dealloc和setter方法)——iOS开发基础
内存管理的基础知识,内存泄露,将是对象,野指针,空指针的理解;引用计数的理解;基于引用计数的内存管理方法的理解;循环引用说明以及解决方法;dealloc和setter的更安全写法;原创 2015-07-08 22:23:40 · 2302 阅读 · 0 评论 -
Objective-C(十八、谓语使用及实例说明)——iOS开发基础
谓语的使用及实例说明逻辑运算符,IN包含,模糊查询原创 2015-07-09 20:28:19 · 2258 阅读 · 0 评论 -
Objective-C(七、分类和延展)——iOS开发基础
分类和延展的语法,作用,实现,优缺点,使用注意要点等等原创 2015-07-01 21:05:16 · 1525 阅读 · 0 评论 -
Objective-C(九、Foundation框架和NSObject类)——iOS开发基础
Foundation框架简介,NSObject类简介,根类的作用,常用方法说明等等原创 2015-07-03 14:51:41 · 1513 阅读 · 0 评论 -
Objective-C(十三、字典类)——iOS开发基础
字典类,可变字典NSDictionary和不可变字典NSMutableDictionary的基本知识和常用方法原创 2015-07-05 15:43:06 · 1624 阅读 · 0 评论 -
dispatch barrier async/sync异同点
前言我们之前大多数都接触过dispatch_barrier_async,这也是GCD提供的解决数据竞争的一种方式,常称作异步栅栏也常通过pthread_rwlock读写锁,来解决数据竞争问题当然,还有很多方式。本文不再讨论如何使用,具体使用大家自行google,而是简洁的讲下dispatch_barrier_async和dispatch_barrier_sync两者的区别,后者可能被很多人...原创 2019-07-08 22:50:00 · 540 阅读 · 0 评论