Objective-C
文章平均质量分 72
zZZ浮生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
iOS触摸事件理解
## 如何确定由哪个视图响应触摸事件解决这个问题之前,我们先看下几个与之相关的类。### UITouch触摸,UITouch保存着跟手指相关的信息,比如触摸的位置、时间、阶段等。1. 当手指移动时,系统会更新同一个UITouch对象,使之能够一直保存该手指在的触摸位置。 当手指离开屏幕时,系统会销毁相应的UITouch对象。2. 一个手指触摸一次屏幕就会生产一个UITouch对象,多个手指同时触摸屏幕,就会生成多个UITouch对象。3. 单个手指多次触摸屏幕(类似于双击等操作...原创 2021-03-30 15:17:40 · 521 阅读 · 0 评论 -
objc4源码编译与调试
源码下载在Apple Open Source上选择对应自己的macOS版本下,下载objc4即可。笔者是macOS Catalina 10.15.6,所以选择的是objc4-787.1版本,顺便在该页面中下载Libc,dyld,libauto,libclosure,libdispatch,libpthread,xnu,libplatform这几个依赖库,编译objc4的时候需要用到。解决编译错误下载完成,解压之后我们打开工程文件,运行报错unable to find sdk 'macosx.原创 2021-01-08 15:11:08 · 666 阅读 · 0 评论 -
[TwistedFate]实例变量可⻅度、⽅法
1.实例变量可⻅度: - @protected默认是 受保护的 只能其本类或者子类去使用(一般使用) - @public 公开的 可以在类的外部进行使用 - @private 私有的 只能是本类进行使用 (基本上不用) 2.OC方法的方法名 首先,方法类型删掉 再把返回值类型删掉 再删参数类型及参数名 删完就是这方法的方法名- (instancetype)initWithNam原创 2015-10-31 11:17:26 · 400 阅读 · 0 评论 -
LLDB调试增强插件Chisel安装与使用教程
chisel是一款facebook出品的LLDB调试器增强插件,添加了诸如pviews,show,hide等命令,详细可以查看chisel wiki安装我们可以使用Homebrew来安装chisel,没有安装Homebrew的同学请戳Homebrew安装已经安装了Homebrew可以直接使用下面的命令安装chiselbrew install chisel执行命令结果如上图表示已经完成...原创 2019-06-17 22:38:50 · 505 阅读 · 0 评论 -
iOS BLE蓝牙开发数据传输协议详解 常用算法(AES加密 HMAC_hash PRF)
前言这段时间参与了一款与蓝牙外设交互的项目, 以前没有涉及过数据传输方面的开发, 踩了不少坑, 同时也学到了很多东西. 此时, 项目也即将进入尾声, 有时间把这些记录一二. 本人才疏学浅, 如有错误,大佬轻喷.BLE4.0开发这方面网上的Demo一大堆, 暂时不做太多的赘述, 只对坑点做一个摘要.需求使然, 要对设备的接近远离有一个比较精确的计算, 使用的方案是对蓝牙的信号强度进行分析....原创 2019-06-17 22:36:37 · 1719 阅读 · 0 评论 -
copy和mutablecopy
对于系统的非容器类对象,我们可以认为,如果对一不可变对象复制,copy是指针复制(浅拷贝)和mutableCopy就是对象复制(深拷贝)。 如果是对可变对象复制,都是深拷贝,但是copy返回的对象是不可变的。 系统的容器类对象:指NSArray,NSDictionary等。对于容器类本身,上面讨论的结论也是适用的,但是注意的是,容器内的元素内容都是指针复制。如果需要元素对象也是对象复制,就需要实原创 2016-08-31 14:03:15 · 436 阅读 · 0 评论 -
[TwistedFate]iOS多线程编程GCD
简介iOS有三种多线程编程的技术,分别是: (一)NSThread (二)Cocoa NSOperation (三)GCD(全称:Grand Central Dispatch) 这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。三种方式的优缺点介绍:1)NSThread: 优点:NSThread 比其他两个轻量级 缺点:需要自己管理线程的原创 2016-01-15 18:59:13 · 637 阅读 · 0 评论 -
[TwistedFate] NSDictionary NSSet
1.NSDictionary不可变字典类 字典 是一个容器 跟数组一样 可以保存数据 保存的形式 是以键值对的形式 一个key对应一个value key 和 value 必须是对象 key作为钥匙 要具有唯一性 在开发中 一半使用字符串作为key值 value可以是一个很复杂的结构 例如字典里嵌套一个字典 字典里保存的键值对是无序的不可变字典切记不能进行增删操作// 用两个数组来初始化原创 2015-11-03 22:25:11 · 533 阅读 · 0 评论 -
[TwistedFate]NSString
学习系统类: 1.NSString 自定义初始化方法:NSString *str1 = [[NSString alloc] initWithFormat:@"wl-%@",@"121"];便利构造器方法:NSString *str2 = [NSString stringWithFormat:@" "];语法糖: NSString *str = @”222313”;// 前缀NSLog(@"%原创 2015-10-31 14:48:51 · 418 阅读 · 0 评论 -
[TwistedFate]继承 初始化方法 便利构造器
1.继承的特性: - 继承是单向的 - 继承是可传递的 - 不能相互继承 - 继承:就是子类继承父类的方法和实例变量 - 继承的好处:减少代码量 提高工作效率 2.继承中方法的调用 - 使用self调用方法的时候: 优先调用本类中的方法 没有继续查找上一级,找到就调用,没有继续查找,都没有程序崩溃 - 使用super调用方法的时候: 直接跳过本类去查找上一级的父类原创 2015-10-31 14:18:33 · 476 阅读 · 0 评论 -
[TwistedFate]面向对象编程、类和对象、实例变量操作
1.Objective-C简称OC,扩充⾃C语⾔的⾯向对象编程语⾔。 是OS X和iOS操作系统的主要编程语⾔ 2.OC的输出方法NSLog,比C语言的printf多一个换行 3.@符 是OC关键字的标志 C语言基本数据类型 int float char OC常用基本数据类型 NSInteger 整型 CGFloat 浮点型 NSString原创 2015-10-31 10:14:53 · 738 阅读 · 0 评论 -
[TwistedFate]OC面向对象
1.OC的输出方法:NSLog(@"这是OC的第一个工程");// 默认输出换行2.@符 是OC关键字的标志 3.C语言基本数据类型 :int float char OC常用基本数据类型:NSInteger 整型 CGFloat 浮点型 NSString 字符型 4.定义一个字符串:NSString *string = @"今天你吃了吗?";// 如果有星* 就代表这是一个对象//原创 2015-10-26 21:22:47 · 437 阅读 · 0 评论 -
[TwistedFate]高级内存管理 多态
内容回顾Person *p = [[Person alloc] init]; NSString *name = [[NSString alloc] initWithFormat:@"王龙"];NSString *name1 = [[NSString alloc] initWithFormat:@"zhuanghzhua"];p.name = name;NSLog(@"%ld",name.re原创 2015-11-09 17:56:29 · 447 阅读 · 0 评论 -
[TwistedFate]内存管理
苹果设备的内存管理mac系统内存管理:垃圾回收以及引用计数管理 手机IOS设备:引用计数管理影响引用计数的方法原创 2015-11-07 19:34:33 · 367 阅读 · 0 评论 -
[TwistedFate]Block 字面量
Block ^托字符(凸起符) Block保存的是 有特定功能的函数体 int (^Block)(int a, int b) = ^初值(跟前面类型要一致) block重命名typedef <#returnType#>(^<#name#>)(<#arguments#>); int (^Block)(int a, int b) = ^int (int a, int b){原创 2015-11-04 22:06:14 · 596 阅读 · 0 评论 -
[TwistedFate]category Extensxion protocol
类目category 类目特点:可以给看不到实现的系统类添加方法 并且添加的方法 使用系统类的对象 或者 类名 直接就可以调用的切记:1.只能添加方法 不能添加实例变量 2.类目中添加的方法相当于直接添加到系统类中 是可以被继承的 注意:在实际编程中,应注意积累,对以后的编程能提供很大的便利延展Extension 或者 @implementation Function // 私有原创 2015-11-06 20:30:35 · 449 阅读 · 0 评论 -
[TwistedFate]属性property
属性property声明如果你的实例变量是_name,那么你生成属性时把下划线去掉可以@property (retain, nonatomic) NSString *name;默认属性实现:关键字@synthesize又称合成set get方法,相当于实现set get方法@synthesize name = _name;等号前面代表声明属性的名称,等号后面代表要赋值成员变量的名称属性的属性读写类属原创 2015-11-06 22:00:17 · 415 阅读 · 0 评论 -
OC中随机数的使用(3种):arc4random,random,CCRANDOM_0_1()
1、随机数的使用 1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc4random() % x; 获取1到x之间的整数的原创 2015-10-21 20:52:34 · 1424 阅读 · 0 评论 -
[TwistedFate]NSArray NSNumber NSValue
1.数组:存储的必须是对象类型 不可变数组:NSArray 不可变数组 切记不能进行增删操作 // 数组初始化方法NSArray *array = [NSArray alloc] initWithObjects:@"王龙",@"壮壮",@"张文",@"赵杰",@"徐阳", nil];// 便利构造器NSArray *array1 = [NSArray arrayWithObjects原创 2015-11-03 21:45:13 · 465 阅读 · 0 评论 -
[TwistedFate] NSDate NSDateFormatter
1.系统中表示时间日期类的是NSDate 初始化一个日期NSDate 并打印:NSDate *date = [NSDate date];NSLog(@"%@",date);// 打印出来的是格林威治时间(0时区)初始化一个日期 距离现在n秒之后的日期NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:-24 * 3600];距离2001-1原创 2015-11-04 22:48:01 · 428 阅读 · 0 评论
分享