自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

More reading and learning to become excellent

the more diligent, the more luckier you are

  • 博客(38)
  • 资源 (30)
  • 收藏
  • 关注

原创 内存管理-Tagged Pointer

Tagged Pointer

2018-07-31 17:24:41 235

原创 内存管理-iOS程序的内存布局

打印结果

2018-07-31 14:25:50 679

原创 内存管理-定时器

解决方案一

2018-07-31 12:02:44 142

原创 多线程

GCD常用函数 GCD的队列 sync与async不能影响任务是串行还是并发执行,只能决定是在当前主线程中执行,还是子线程中执行,主要影响是能不能开启新的线程. 而队列的类型,决定了任务的执行方式(并发,串行),队列不能决定开启线程,队列只能决定任务是一个一个执行,还是多个同时执行 各种队列的执行效果 只要是sync或者是主队列,就意味着不会开启新线程,而且是串行执行...

2018-07-29 19:59:04 153

原创 RunLoop

RunLoop

2018-07-28 22:59:34 197

原创 Runtime-API

动态创建一个类 修改uitextField的占位字的颜色 方法二:窥探哪个UI控件里面的有哪些东西,可以通过这个方法获取,设置的时候可以用不一样的办法设置 找UITextField内部有哪些成员变量,记查看私有的成员变量 如何访问成员变量_placeholderlabel 用KVC获取 或者 数字不能直接转成对象类型的,首先...

2018-07-28 22:39:32 378

原创 Objc_msgSend

OC的方法调用:消息机制,给方法调用者发送消息 消息发送 动态方法解析 要注意: 消息转发 将消息转发给别人 元类对象的消息转发 super 调用super的结论: super调用的消息接收者仍然是子类对象,只不过是从父类的类对象开始去搜索方法. class方法的底层实现是object_getClass(s...

2018-07-27 17:20:43 722

原创 Class的结构

看到bits &FAST_DATA_MASK,说明bits里面存储了很多有用的信息,要取出其中的class_rw_t结构,要&FAST_DATA_MASK才可以取出 一开始bits 是指向class_ro_t的,后来重新创建了一个class_rw_t 再讲rw设置为我们的data,所以最近bits取出来是指向class_rw_t,而class_rw_t里面的ro...

2018-07-27 11:40:52 279

原创 isa详解

在arm64之前isa就是普通的指针,只存储类对象,元类对象的指针,但是arm64之后,isa做了优化,采取了共用体结构,将一个64位的内存数据分开存储了很多东西,其中33位用来存储地址值...

2018-07-27 08:32:24 1522

原创 位域及枚举位运算实例应用

Runtime:运行时做些操作 struct { // 位域 : uintptr_t nonpointer : 1; //用二进制的一位来代表这个信息 uintptr_t has_assoc : 1; uintptr_t has_cxx_dtor : 1; uintptr_t shiftcls ...

2018-07-26 16:06:25 446

转载 C指针

一、细说指针 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。让我们分别说明。先声明几个指针放着做例子: 例一:(1)int*ptr;(2)char*ptr;(3)int**ptr;(4)int(*ptr)[3];(5)in...

2018-07-26 09:14:30 198

原创 Block

auto只能用于局部变量 存储的是height变量的地址值 总结 auto自动变量是可能会销毁的,age这个变量的内存将来可能会消失,将来block里面再访问这个内存就会报错. 但是static一直都会在内存中,虽然test()函数已经执行完了,但是height仍然在内存中,所以block()执行访问height的时候还是可以取内存中最新的值,所以通过指针去...

2018-07-25 20:19:36 168

原创 Block本质

^{ NSLog(@"this is a block!");};block不调用是不会执行的 如何调用block,直接添加()就可以调用了即^{ NSLog(@"this is a block!");}();一般我们都会吧block存起来void返回值block名称,(void)参数为空 void(^block)(void) = ^{ NSLog(@...

2018-07-25 19:14:54 345 2

原创 Category

通过runtime动态添加的struct 源码分析 重新组合方法 分类和类扩展有什么区别 类扩展是编译的时候就已经合并到类里面去了,相等于类扩展的东西一编译的时候就已经存在了,类扩展的作用本来是公开声明的东西放到.m文件中私有化,相等于变成一个私有的声明 而分类是程序运行机制,将分类数据合并到类信息中去. ...

2018-07-25 10:58:01 223

原创 KVC

KVC的全称Key -Value Coding,俗称 “键值编码”,可以通过一个Key来访问某个属性- (void)setValue:(id)value forKeyPath:(NSString *)keyPath;- (void)setValue:(id)value forKey:(NSString *)key;- (id)valueForKeyPath:(NSString *)ke...

2018-07-25 09:49:50 160

原创 KVO

KVO的全称是Key-Value Observing,俗称”兼职监听”,可以用于监听某个对象属性值的改变 self.person1监听到了对象属性值发送变化,self.person2没有监听到对象属性值发生变化.本质是什么 NSKVONotifying_MJPerson是使用Runtime动态创建的一个类,是MJPerson的子类 总结: 这就是为什么self....

2018-07-24 21:20:20 226

原创 GCD基础

例子

2018-07-24 16:56:39 104

原创 Runloop

实例图片延迟显示 // 在NSDefaultRunLoopMode模式下显示图片 怎么让一条线程不死一直执行 模式中有source 则runloop开始转圈 有事件就醒来. 希望在子线程中做事情 在子线程开runloop的时候,一定要添加autoreleasepool,一个runloop是对应一条线程的,自动释放池是针对于当前线程的...

2018-07-24 16:25:01 146

原创 OC对象的本质一

我们平时编写的OC代码,底层实现都是C\C++代码 Xcode新建一个app工程. 终端指向main.m的上一级目录 终端打印 clang -rewrite-objc main.m -o main.cpp clang 是苹果内置的编程语言的编译器前端 -rewrite-objc 重新Objc代码,写为C或者C++代码 -o输出 -o main.cpp输出main.cpp (cpp...

2018-07-24 10:28:13 187

转载 iOS在后台完成申请更多时间

我们知道,到我们程序从前台退到后台(安home)键后,将执行程序的委托方法。// 当应用程序掉到后台时,执行该方法 - (void)applicationDidEnterBackground:(UIApplication *)application { } 假设有这么一种情况: 当我们的应用程序从前台被送到了后台。 这时候,我们的程序将执行委托方法applicationDidEnt...

2018-07-20 17:16:55 689

转载 关联对象AssociatedObject解析

我们在 iOS 开发中经常需要使用分类(Category),为已经存在的类添加属性的需求,但是使用 @property 并不能在分类中正确创建实例变量和存取方法。但是,通过OC的runtime关联对象,也就是Associated Object,可以实现上述需求.使用关联对象为已经存在的类中添加属性. 关联对象的应用,分类中的@property @property可以说是一个OC编程中的”宏...

2018-07-20 12:51:20 286

原创 C语言中的指针概念

一般把数据都放在存储器中,存储器中一个字节称为一个内存单元 不同数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元,每个内存单元都有编号.这个编号也叫地址.就是我们所说的指针.内存单元的指针和内存单元的内容是两个不同的概念.对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容.在C语言中,允许用一个变量来存放指针,这种变量称为指针变量. 因此,一个指针变量...

2018-07-20 11:20:49 8611 1

原创 Runtime的方法交叉(Method Swizzling)检测控制器是否释放

什么是Method Swizzling,为什么要用Method Swizzling Method Swizzling:方法交叉,交换两个方法的实现.为什么要交换两个方法的实现,因为我们无法修改系统的某些方法,通过自己写一个方法,然后利用Runtime的Method Swizzling去交换系统与自定义的方法的实现,这样,调用系统的方法时,其实就是执行我们自定义的方法.执行我们自定义方法就是调用系...

2018-07-19 09:16:42 140

原创 tableViewCell的动画效果及动态高度计算

动画图git效果不是很好 import UIKitclass MyViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { @IBOutlet weak var myTableView: UITableView! override func viewDidLoad() {...

2018-07-18 17:30:36 628

转载 UITextView高度随文字自动增加

代码如下:#define DEVICE_HEIGHT [UIScreen mainScreen].bounds.size.height#import "ViewController.h"@interface ViewController ()<UITextViewDelegate>@property (nonatomic, strong) UITextView *tex...

2018-07-18 11:19:01 986

原创 计算视频流量

码率也可以叫比特率,就是一种音乐每秒播放的数据量,单位用bit表示,也就是二进制位。 bps就是比特率。b就是比特(bit),s就是秒(second),p就是每(per),一个字节相当于8个二进制位。也就是说128bps的4分钟的歌曲的文件大小是这样计算的(128/8)*4*60=3840kB=3.8MB.流量:单位时间内收发的数据包的数量. 1M = 1024KB 流量 (M) = 观看...

2018-07-13 15:51:40 12365

翻译 charles抓包

charles抓包,证书都配置好了,还是无法抓包 通常情况下,打开charles,然后菜单栏选择Proxy -> Mac OS X Proxy 即可,接着所有访问的请求都可以在charles中看到。下面是抓不到请求的原因:是我系统设置了vpn代理导致。 因为CloudSS是使用自动代理配置这个,这样就导致了charles无法抓包(这种情况下可以真机上抓包,...

2018-07-13 10:49:22 948 1

原创 collection中cell选中状态下分享图片的快照snapshot

IconCollectionViewController.swift IconDetailViewController.swift IconCollectionViewCell.swift Icon.swift UIView+Snapshot.swift IconCollectionViewController.swiftimport UIKitprivate...

2018-07-09 17:11:23 265

原创 AVKit录像与播放

import UIKitimport AVFoundationimport AVKitclass SimpleVideoCamController: UIViewController { @IBOutlet var cameraButton:UIButton! let captureSession = AVCaptureSession() var ...

2018-07-06 11:21:50 4675

原创 手势控制相机(缩放,转换前后镜头)拍摄相机中的图片保存至相册

通过向上轻扫来切换前后相机镜头,通过从左向右轻扫来放大,从右向左轻扫来缩写,但按下save时保存至相册 @available(iOS 11.0, *)class SimpleCameraController: UIViewController { var toggleCameraGestureRecognizer = UISwipeGestureRecognizer(...

2018-07-06 10:06:50 1245

原创 QRCodeReader

class QRScannerController: UIViewController { @IBOutlet var messageLabel:UILabel! @IBOutlet var topbar: UIView! var captureSession = AVCaptureSession() var videoPreviewLayer: AV...

2018-07-04 16:27:17 2450

原创 AVAudioPlayer与AVAudioRecorder(录音及播放及定时器计时)

在iOS10上,如果没有使用者允许的话,不能存取麦克风,所以需要在Info.plist中添加NSMicrophoneUsageDescription的key,并告知你的使用者为何你的app需要麦克风import UIKitimport AVFoundationclass RecordProController: UIViewController { private var t...

2018-07-04 14:39:40 1635

转载 修改UISearchBar背景颜色(内外框)

self.noteSearchResultVC = [[NoteSearchResultViewController alloc]init]; self.noteSearchResultVC.mainSearchController = self; self.noteSearchResultVC.noteSearchResultDelegate = self; ...

2018-07-03 15:13:43 2822

转载 将当前图片缩放到指定宽度

import UIKitextension UIImage { /// 将当前图片缩放到指定宽度 /// /// - parameter width: 指定宽度 /// /// - returns: UIImage,如果本身比指定的宽度小,直接返回 func scaleImageToWidth(_ width: CGFloat) -> ...

2018-07-03 11:44:04 324

转载 设定constraint后执行layoutIfNeeded()

通过设置constraint后,在这种情况下,你已经更新了约束值,但iOS 一直没有机会真正更新布局,调用layoutIfNeeded()方法,让这个view参与到布局中import UIKitclass IconListView: UIScrollView { var didSelectItemBlock:((_ index:Int) -> ())? let...

2018-07-03 11:10:42 558

原创 创建及进入新的storyboard

let storyboard = UIStoryboard(name: "Onboarding", bundle: nil) if let walkthroughViewController = storyboard.instantiateViewController(withIdentifier: "WalkthroughViewController") as? Walkth...

2018-07-03 09:19:18 640

转载 animateKeyframes 与 Animation

import UIKitclass ViewController: UIViewController { @IBOutlet weak var fj:UIImageView! @IBOutlet weak var yd1:UIImageView! @IBOutlet weak var yd2:UIImageView! @IBOutlet weak var yd3:U...

2018-07-02 16:26:20 800

原创 UIView的layout方法

public struct CATransform3D { public var m11: CGFloat public var m12: CGFloat public var m13: CGFloat public var m14: CGFloat public var m21: CGFloat public var m22: CGF...

2018-07-02 12:05:04 213

iOS 16 RC 真机调试包

iOS 16 RC 真机调试包 支持16.0(20A362)

2022-09-14

iOS-13.0-13.6-.zip

下载完成后,放入下面的文件夹中 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

2020-08-25

ARM汇编.pdf

包含ARM微处理其概述,ARM微处理器的编程模型,ARM微处理的指令系统等

2018-05-03

ARM64汇编.pdf

ARM64汇编,是iOS真机测试的时候的汇编指令,包含生成汇编文件,寄存器,指令,iOS汇编,函数的堆栈

2018-05-03

iOS签名机制

iOS签名机制ppt,主要有加密,解密,单向散列函数,数字签名,证书,iOS签名机制

2018-05-02

iOS11.4在不升级xcode的情况下,在对应版本的真机内进行测试

iOS Platform文件 文件路径: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 下载对应版本的platform压缩包,然后解压后拖进路径内, 可以在不升级xcode的情况下,在对应版本的真机内进行测试。

2018-04-09

iOS11.3在不升级xcode的情况下,在对应版本的真机内进行测试

iOS Platform文件 文件路径: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 下载对应版本的platform压缩包,然后解压后拖进路径内, 可以在不升级xcode的情况下,在对应版本的真机内进行测试。

2018-04-09

Asset Catalog Creator Free

快速切图工具,可以直接添加图片和导出路径直接导出@3x,@2x,@1x

2017-11-30

iOS的App中上下黑边

iOS的app上下黑边问题在项目中添加三张图片可以解决问题

2017-11-30

iOS11.1(15B87)真机测试包

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport,前往MAC复制的地址

2017-11-23

Xcode 11.0 (15A372)配置包

Xcode 11.0 (15A372)配置包,手机升级到iOS11.0后真机测试需要添加配置包,将下载的配置包放到下面路径: 前往文件夹路径/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

2017-10-10

TreeTableView

TreeTableView

2017-06-08

第三方折叠树demo

树形

2017-06-08

图解网络硬件完整版

2017-02-23

图解HTTP彩色版

图解HTTP彩色版

2017-02-23

仿微信朋友圈图片缩放

微信 朋友圈 图片 显示 缩放 效果比微信好点,主要是在渐入渐出这个效果上,微信是渐入,是闪出,没有过度效果

2016-12-28

collectionViewAndTable

有人要10分资源分从csdn上下载,这次免费,没什么含量要这么多资源分,太浪费大家的感情了,所以我0分供大家下载

2016-11-18

BLOCK 应用场景

Block的应用场景

2016-11-17

MAC weixin.dmg

在MAC 安装微信

2016-11-17

MAC 搜狗输入法安装包

MAC 搜狗安装包

2016-11-16

xcode 模拟器调试直接进入沙盒

代码下下来,是出现My Mac直接点击Run然后,Build Success 后重启XCode 或者重启电脑,再打开程序,在Xcode菜单栏中选择File->Go to SandBox!->选择当前选择的模拟器,找到氮气项目,打开即时沙盒位置

2016-11-16

MAC MindNode

MAC 思维导图破解版

2016-11-10

mounty MAC传输硬盘文件

MAC 上面传输硬盘文件 用mounty 点击YES即可

2016-11-02

Sublime写前端

sublime

2016-11-02

snip截图工具

MAC 截图工具snip

2016-11-02

iphone抓包工具

iphone抓包工具

2016-11-02

iOS 10.1 Xcode真机测试包

iOS 10/1真机测试包

2016-11-02

MPMoviePlayerController播放器封装

MPMoviePlayerController的简单封装

2016-03-20

AVplayer播放器封装

AVPlayer的封装

2016-03-20

iOS加密算法

iOS加密算法

2016-03-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除