
高级问题
文章平均质量分 78
Jamison_Fan
这个作者很懒,什么都没留下…
展开
-
iOS Object-C中类对象的本质
该内容仅供自己学习记录,前前后后也积累了好多有关Objective-C的东西,今天偶然看到一个有关MJ的视频,特此记录一下一个NSObject对象占用多少内存字节首先回答这个问题,要分为两部分因为对象本质是个结构体,里面有isa指针指向自己所属的类(类的isa指针指向元类,元类的isa指针指向基类的meta-class对象),总归是个指针,那么,它占用的自己数是8(64bit位环境下)个字...原创 2019-12-30 23:24:24 · 363 阅读 · 0 评论 -
C 中结构体内存对齐规则
C语言中结构体内存对齐规则对齐规则:内存偏移为该数据类型的最小整数倍总体占用内存为结构体中最大数据类型的整数倍举个????:首先,要搞清楚每一种数据类型占用内存为多少,在这里,是针对64位Linux(macOs)为例的NSLog(@"char:%zd",sizeof(char));NSLog(@"double:%zd",sizeof(double));NSLog(@"long:%zd...原创 2019-12-15 23:49:40 · 347 阅读 · 1 评论 -
有关AVAsset获取出来的视频宽高不正确的问题
通过AVAsset 获取视频的宽高时,遇到了一个问题,获取出来的宽高都是一样的,不管横竖屏。搜索了大部解决方法: AVAsset *asset = [AVAsset assetWithURL:url]; NSArray *tracks = [asset tracksWithMediaType:AVMediaTypeVideo]; if([tracks count] > 0...原创 2019-06-03 16:28:08 · 2889 阅读 · 0 评论 -
Mac 磁盘剩余空间不足清理 (主要是针对iOS开发Xcode缓存清理)
Mac 磁盘剩余空间不足清理 (主要是针对iOS开发Xcode缓存清理)电脑256的ssd,会比较小,除了我们平时清理DerivedData,其实还有一部分空间可以释放,大到40多GB.删除指数:(5星排行)删除指数(5星)只要重新运行Xcode就一定会重新生成,而且会随着运行程序的增多,占用空间会越来越大。删除后在重新运行程序可能会稍微慢一点,建议定期清理。路径:~/Libra...翻译 2019-04-11 11:50:29 · 3254 阅读 · 0 评论 -
ios 微信逆向部分
一、砸壳方法(转载注明出处)准备工作:越狱的手机(必须的)dumpdecrypted (砸壳使用)class-dump (导出砸壳后的二进制包的头文件)Cycript(Cydia)(在越狱手机的越狱市场下载,安装)adv-cmds(Cydia)(在越狱手机的越狱市场下载,安装)OpenSSH(Cydia) (在越狱手机的越狱市场下载,安装)具体实现步骤首先在APP...原创 2018-09-13 13:36:09 · 3310 阅读 · 0 评论 -
KVO/KVC原理
KVC/KVO原理KVCKVC访问属性时尽可能尝试使用存取方法,当KVC访问属性时,它内部其实做了很多事:以一个属性icon为例首先查找模型中有没有setIcon方法,如果有有,直接调用[self setIcon:dict[@"icon"]];如果找不到set方法,直接寻找有没有icon属性,如果有,就直接访问模型中icon = dict[@"icon"];如果找不到ic...原创 2018-04-23 14:33:25 · 1239 阅读 · 0 评论 -
iOS中 +(void)load +(void)和initialize的区别
+(void)load 方法只要类所在文件被引用就会被调用,而initialize是在类或者子类的第一个方法被调用前调用。所以如何类没有被引用到Complie Sources中就不会调用load方法,因此,load方法是在main函数之前调用的,因此,load方法总是在main函数之前调用的。Load如果一个可以调用Load方法,那么他在调用这个方法前会调用父类的load方法。而转载 2017-03-17 20:30:46 · 1000 阅读 · 0 评论 -
优化UITableViewCell高度计算的那些事
戳原文:戳我看原文我是前言这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和UITableView 滑动优化的一个总结。我们也在维护一个开源的扩展,UITableView+FDTemplateLayoutCell,让高度计算这个事情变的前所未有的简单,也受到了很多星星的支持,github链接请戳我这篇总结你可以读到:转载 2017-05-17 17:23:06 · 347 阅读 · 0 评论 -
利用RunLoop优化tableView
原文链接:http://www.qingpingshan.com/rjbc/ios/214222.htmliOS开发中,UITableView的优化一直是一个老生常谈的问题,除了常用的预加载,缓存等方法以外,其实利用RunLoop 的循环也可以实现超清大图的流畅加载,具体的使用方法我们利用一个demo来详细理解:首先,我们有一个需求,就是要从网络加载高清大图到UITableViewCe翻译 2017-03-23 18:04:16 · 4351 阅读 · 0 评论 -
一个关于AVPlayer蛋疼的释放问题(iOS 9.0 AVPlayer的使用与内存的释放问题)
首先需要创建AVPlayer 这时候要先包含头文件,因为是9.0了,所以不用包含库,直接导入头文件即可#import 在这里可以把播放器作为成员变量,方便全局使用,当然,也可以不用,我在这里是作为全局变量来使用的,方便内存的管理@property (nonatomic,strong) AVPlayer *player;//视频播放@property (nonatomic,stron原创 2015-11-06 16:58:14 · 8744 阅读 · 0 评论 -
iOS Runtime与消息转发机制
首先贴上Runtime代码,参照着代码进行runtime的学习Runtime代码 (使用版本为objc4-646.tar)首先,如果要了解Runtime机制,我们不得不先说一下iOS的消息转发机制,来看下面的这一段代码- (void)testMessageSend { UILabel *label = [[UILabel alloc] initWithFrame:s原创 2017-03-30 14:03:48 · 474 阅读 · 0 评论 -
深入理解RunLoop
fdssdfsdf深入一.RunLoop基本概念概念:程序的运行循环,通俗的来说就是跑圈.1. 基本作用(作用重大) (1) 保持程序的持续运行(iOS程序为什么能一直活着不会死) (2) 处理app中的各种事件(比如触摸事件、定时器事件【NSTimer】、selector事件【选择器·performSelector···】) (3)节省CPU资转载 2017-03-23 11:10:37 · 491 阅读 · 0 评论