IOS
damys
态度决定一切,积累决定层次,思维决定行为,习惯决定命运
展开
-
ISO----Mac键盘修饰键,Xcode常用快捷键
Mac键盘修饰键,Xcode常用快捷键原创 2022-12-29 15:45:17 · 493 阅读 · 0 评论 -
IOS----macOS系统上安装,使用Git,常用可视化工具
macOS系统上安装,使用Git,常用可视化工具原创 2022-12-29 15:37:41 · 2051 阅读 · 0 评论 -
OC----内存管理,对象被回收,引用计数器
1.2 内存管理的范围:只需要管理存储在堆中的OC对象的回收.其他区域中的数据的回收是系统自动管理的.1.3 对象应该什么时候被回收?当有人使用这个对象的时候,这个对象就千万不能回收.只有在没有任何人使用这个对象的时候,才可以回收.1.4. 引用计数器1) 每1个对象都有1个属性叫做retainCount(引用计数器). 类型是unsigned long 占据8个字节. 引...原创 2019-02-12 09:41:50 · 491 阅读 · 0 评论 -
OC----id 类型
id 类型9.1 NSObject: 是OC中所有类的基类.根据LSP NSObject指针就可以指向任意的OC对象. 所以.NSObject指针是1个万能指针.可以执行任意的OC对象. 缺点: 如果要调用指向的子类对象的独有的方法.就必须要做类型转换. 9.2 id指针: 是1个万能指针,可以指向任意的OC对象. 1) id是1个typedef自定义类型 在定...原创 2019-01-16 09:26:50 · 1657 阅读 · 0 评论 -
OC----动态类型和静态类型
动态类型和静态类型8.1 OC是1门弱语言. 编译器在编译的时候.语法检查的时候没有那么严格.不管你怎么写都是可以的 int num = 12.12; 优点: 灵活 咋个行都写. 缺点: 太灵活 强类型的语言: 编译器在编译的时候 做语法检查的时候 行就是行 不行就是不行. 8.2 静态/动态类型 静态类型:指的是1个指针指向的对象是1个本类对...原创 2019-01-16 09:25:53 · 728 阅读 · 0 评论 -
OC----synthesize 关键字
@synthesize 关键字6.1 问题: setter, getter的实现也是没有什么任何技术含量6.2 作用: 自动生成getter、setter方法的实现.6.3 语法: @synthesize @property名称; 如: @interface Person : NSObject{ int _age; } @property int age;...原创 2019-01-14 10:21:13 · 1058 阅读 · 1 评论 -
OC----property 关键字
@property 关键字5.1 问题:setter, getter的声明是没有什么任何技术含量5.2 作用: 自动生成setter, getter 方法声明5.3 语法: @property 数据类型 名称; 如:@property int age; 5.4 原理:编译器在编译的时候.会根据@property生成getter和setter方法的实现. @property 数据...原创 2019-01-14 10:17:37 · 289 阅读 · 1 评论 -
OC----动态类型的检测
动态类型的检测10.1 OC 编译器: LLVM 编译器在编译的时候. 判断1个指针是否可以调用指向的对象的方法.判断的准则就是指针的类型. [(Person*)obj1 say]; 可以很轻松的把编译器给骗过,程序运行是还会做检查 10.2 我们就希望.我们可以写代码来先判断1下.对象中是否有这个方法.如果有再去执行.如果没有就别去执行. 1). 判断对象中是否有这个方...原创 2019-01-18 10:13:05 · 613 阅读 · 0 评论 -
OC----点语法
对象名.去掉下划线的属性名; p1.name = @"jack"; 这个时候就会将@"jack"赋值给p1对象的_name属性. NSString *name = p1.name; 把p1对象的_name属性的值取出来. 4.1 原理: p1.age = 18; 这句话的本质并不是把18直接赋值给p1对象的_age属性. 点语法在编译器编译的时候.其实会...原创 2019-01-04 10:25:39 · 689 阅读 · 0 评论 -
OC---- selector 选择器
SEL 全称叫 selector 选择器, 是一个数据类型(其实是一个类), 所以要在内存中申请空间存储数据3.1 类是以Class对象的形式存储在代码段之中. 类名:存储的这个类的类名. NSString 3.2 还要将方法存储在类对象之中.如何将方法存储在类对象之中. 1). 先创建1个SEL对象. 2). 将方法的信息存储在这个SEL对象之中. ...原创 2019-01-04 10:23:09 · 966 阅读 · 0 评论 -
OC----如何拿到存储在代码段中类的对象
如何拿到存储在代码段中类的对象a) 调用类的类方法 class 就可以得到存储类的类对象的地址b) 调用对象的对象方法 class 就可以得到存储这个对象所属的类的Class对象的地址.c) 对象中的isa指针的值其实就是代码段中存储类的类对象的地址.注意: 声明Class指针的时候 不需要加* 因为在typedef的时候已经加了*了.如何使用: Class c1 = [Pers...原创 2018-12-28 15:27:30 · 284 阅读 · 0 评论 -
OC----构造方法
构造方法11.1 创建对象, 类名 *指针名 = [类名 new]; new实际上是1个类方法. 1. new方法的作用:创建对象。初始化对象, 把对象的地址返回. 2. new方法的内部,其实是先调用的alloc方法. 再调用的init方法. alloc方法是1个类方法,作用: 那1个类调用这个方法 就创建那个类的对象,并把对象返回. ...原创 2019-01-22 16:14:56 · 204 阅读 · 0 评论 -
OC----内存管理,内存的作用
内存的作用:存储数据.1) 如何将数据存储到内存之中.声明1个变量.然后将数据存储进去.2) 当数据不再被使用的时候,占用的内存空间如何被释放. 1.1 内存中的五大区域 栈: 局部变量. 当局部变量的作用域被执行完毕之后,这个局部变量就会被系统立即回收. 堆: OC对象.使用C函数申请的空间. BSS段: 未初始化的全局变量、静态变量. 一旦初始化...原创 2019-01-22 16:16:04 · 398 阅读 · 0 评论 -
OC----在MRC的开发模式下.1个类的属性如果是1个OC对象类型的.属性的setter方法
在MRC的开发模式下.1个类的属性如果是1个OC对象类型的.那么这个属性的setter方法就应该按照下面的格式写.最终格式: - (void)setCar:(Car *)car{ if(_car != car){ [_car release]; _car = [car retain]; } } ...原创 2019-06-06 09:03:02 · 205 阅读 · 0 评论 -
OC----setter 方法的内存管理
setter 方法的内存管理案例: Jack开车去旅行.人类: 属性:(车). 行为:(开车), 人有一辆人,将车作为人的属性 车类: 属性:(速度). 行为:(行驶) 6.1 当属性是1个OC对象的时候. setter方法的写法. 将传进来的对象赋值给当前对象的属性,代表传入的对象多了1个人使用,所以我们应该先为这个传入的对象发送1条retain消息后再赋值 当前...原创 2019-06-06 09:01:31 · 253 阅读 · 0 评论 -
OC----单个对象的内存管理
单个对象的内存管理5.1 内存泄露. 指的是1个对象没有被及时的回收.在该回收的时候而没有被回收 一直驻留在内存中,直到程序结束的时候才回收. 5.2 单个对象的内存泄露的情况. 1) 有对象的创建,而没有对应的release 2) retain的次数和release的次数不匹配. 3) 在不适当的时候,为指针赋值为nil 4) 在方法中为传入...原创 2019-05-24 09:17:11 · 176 阅读 · 0 评论 -
OC----野指针与僵尸对象
野指针与僵尸对象4.1 野指针 C语言中的野指针: 定义1个指针变量.没有初始化.这个指针变量的值是1个垃圾值,指向1块随机的空间.这个指针就叫做野指针. OC中 的野指针: 指针指向的对象已经被回收了.这样的指针就叫做野指针. 4.2 对象回收的本质. a) 申请1个变量,实际上就是向系统申请指定字节数的空间.这些空间系统就不会再分配给别人了. b) 当变...原创 2019-05-24 09:16:35 · 620 阅读 · 0 评论 -
OC----内存管理的重点
3.1. 什么时候为对象发送retain消息. 当多1个人使用这个对象的时候,应该先为这个对象发送retain 消息. +1 3.2 什么时候为对象发送releaee消息. 当少1个人使用这个对象的时候.应该为这个对象发送1条release 消息. -1 3.3 在ARC机制下,retain, release, dealloc 这些方法方法无法调用. 3.4 内存管理的...原创 2019-04-08 10:27:21 · 156 阅读 · 0 评论 -
OC----内存管理的分类
2.1 MRC: Manual Reference Counting 手动引用计数.手动内存管理.当多1个人使用对象的时候,要求程序员手动的发送retain消息.少1个人使用的时候程序员手动的发送relase消息.2.2 ARC: Automatic Reference Counting 自动引用计数.自动内存管理.(2011年之前 iOS5之前.)系统自动的在合适的地方发送retain ...原创 2019-04-08 10:19:04 · 264 阅读 · 0 评论 -
OC----内存管理
-------------------------- Person 类-------------------------@interface Person : NSObject@property NSString *name; - (void)say;@end @implementation Person//相关于析构函数- (void)dealloc{ NSLog(...原创 2019-04-08 10:18:23 · 234 阅读 · 0 评论 -
OC----操作引用计数器
1.5. 如何操作引用计数器.1) 为对象发送1条retain消息. 对象的引用计数器就会加1. 当多1个人使用对象的时候才发.2) 为对象发送1条release消息.对象的引用计数器就会减1. 当少1个人使用对象的时候才发.3) 为对象发送1条retainCount消息. 就可以去到对象的引用计数器的值. 就这样++ --, 当对象的引用计数器变为0的时候,对象就会被系统立即回收....原创 2019-02-12 09:42:53 · 543 阅读 · 0 评论 -
OC----结构体与类
1.1 相同点: 都可以将多个数据封装为一个整体struct Data{ int year; int month; int day;} @interface Date : NSObject{ int year; int month; int day;}@end;1.2 不同点: 结构体只能封装数据, 而类不仅可以封装数据,还可以...原创 2018-12-28 15:26:23 · 435 阅读 · 0 评论 -
OC----类加载
在执行时, Student *stu1 = [Student new] 会作类加载,加载项有: 1. Student 自己定义的属性,方法 2. Person 类(_name, - (void)say...) 3. NSObject 类(isa, description,..)所有子类对象中有自己的属性,方法,与所有父类的属性,方法 [stu1 say] 执行的...原创 2018-12-28 15:25:21 · 210 阅读 · 0 评论 -
OC----多态,description
多态 指是同一个行为,具备多种形态(对于不同的事物具有完全不同的表现形式).description NSLog 在打印字符时, 会先调用description 方法, 这个方法的返回值是一个字符串, 后输出这个字符串 descrption 的定义是在NSObject 类之中的,所有每个OC对象都有此方法 如:[p1 description]什么时候重写:如果你希望%@...原创 2018-11-07 09:32:39 · 215 阅读 · 0 评论 -
OC----内存管理:内存5大区域
栈区域: 系统自动分配. 存储局部变量 如:int num=10, int* p=&num。 num 与 p 都存储在栈区域堆区域: 允许程序员手动的从堆申请空间来使用,要主动释放。除非程序结束 如:int 4, float 4…. malloc,calloc …BSS段区域: 存储未初始化的全局变量/静态变量,因程序运行时其全局/静态变量都没有初始化数据段/常量区:存储已...原创 2018-07-09 09:12:28 · 765 阅读 · 0 评论 -
OC----类的调用
int main(int argc, const char * argv[]) { NSLog(@"hello OC"); //2016-07-17 15:00:17.315 01 oc 语法基础[582:16086] hello OC //时间---------------------程序名-----进程编号:线程编号--输出信息 Person *perso...原创 2018-07-09 09:09:31 · 571 阅读 · 0 评论 -
OC----NSSting,通过类名调用
NSSting 是Foundation 框架中的1个类,作用:存储OC字符串完整的标准的创建NSSting 对象方式, 其str 是对象的地址. @p(指针变量的值), %@(指针指向的对象) 1. NSString *str1 = [NSString new]; 2. NSString *str2 = [NSString string]; 3. 创建空的字符串:@""; 如:原创 2017-09-06 10:42:02 · 595 阅读 · 0 评论 -
OC----类的声明,实现与调用
类的声明与实现#import <Foundation/Foundation.h>//声明@interface Person : NSObject{//属性的声明 @public //外部可以访问。默认是不能访问的 NSString *_name; int _age; float _height;}- (void) run;原创 2017-09-06 10:36:48 · 538 阅读 · 0 评论 -
OC----Masonry 自动布局
Masonry 中的坑 1. 在使用Masonry添加约束之前,需要在addSubview之后才能使用,否则会导致崩溃。 2. 在添加约束时初学者经常会出现一些错误,约束出现问题的原因一般就是两种:约束冲突和缺少约束。对于这两种问题,可以通过调试和log排查。 3. 之前使用Interface Builder添加约束,如果约束有错误直接就可以看出来,并且会以红色或者黄色警告体现出来。而Maso原创 2017-01-10 10:27:31 · 2875 阅读 · 0 评论 -
IOS----Objective-C中JSON解析与XML解析
IOS----Objective-C中JSON解析与XML解析原创 2015-12-31 10:24:41 · 1737 阅读 · 0 评论 -
IOS----向用户征询iOS授权的五种常见设计模式
对于iOS app,当功能涉及到推送通知、访问照片或调用相机、获取地理位置等等时,都需要向用户申请授权。申请会发生在app运行的过程中,而不是像Android那样在安装的时候就莫名其妙的问用户是否同意app调用某些系统功能。不过如今Android也在向iOS的方式靠拢。对于产品设计方而言,这里最大的问题在于,iOS只给你一次机会去征询授权 – 一旦那些缺乏耐心和理性的用户(多数用户)出于无翻译 2015-12-28 09:10:09 · 653 阅读 · 0 评论 -
HTML----常用HEAD头标
DOCTYPEDOCTYPE(Document Type),该声明位于文档中最前面的位置,处于 html 标签之前,此标签告知浏览器文档使用哪种 HTML 或者 XHTML 规范。DTD(Document Type Definition) 声明以 开始,不区分大小写,前面没有任何内容,如果有其他内容(空格除外)会使浏览器在 IE 下开启怪异模式(quirks mode)渲染网页。翻译 2015-01-20 20:46:58 · 1613 阅读 · 0 评论 -
Swift----安装,简介
目前最新的稳定版是 Swift 0.94.1翻译 2014-06-03 15:41:11 · 3282 阅读 · 0 评论 -
IOS----OC 相对于C: 指令,源文件,编译比较
OC 相对于C a) 在C的基础上新增了1小部面对象的语法 b) 将C 复杂的,繁琐的语法封装的更为简单 c) OC完全兼容C语言CO 与C 源文件: OC 文件:源文件为.m m代表message 代表OC中最重要的1个机制,消息机制 C 文件:源文件为.cmain 函数仍然是OC程序的入口和出口 int 类型是返...原创 2018-07-06 09:05:26 · 288 阅读 · 0 评论 -
IOS----OC 相对于C: 数据类型
OC 中支持C语言中的所有数据类型 1. 基本数据类型: int, double, float, char 2. 构造类型 : 数组, 结构体, 枚举 3. 指针类型 : int *p1 4. 空类型 : void 5. typedef 自定义类型: typedef int moneyOC 类型 1. BOOL 类型: 可以存储Y...原创 2018-07-06 09:06:46 · 382 阅读 · 0 评论 -
OC----方法重写
场景: 子类拥有父类的行为,但这个行为具体实现和父类不一样.使用: 子类就按自己的方式重写就行了,直接在子类的实现中实现,方法名是一样的当一个父类指针指向一个子类对象时,通过父类指针调用的方法,如果在子类中重写,调用就是子类重写的方法(LSP 不同)...原创 2018-11-07 09:31:22 · 976 阅读 · 0 评论 -
OC----里氏替换原则(LSP): 子类可以替换父类的位置,并且程序的功能不受影响
父类要一个父类对象,可以给一个子类对象. 如:[Person *stu = Studen new]; 原则: 当一个父类指针指向一个子类对象的时候,这里就有里氏替换原则. LSP 作用: 1. 一个指针可以存储本类对象的地址,还可能存储子类对象的地址 2. 如果一个指针的类型是NSObject 类型,那么这个指针可以存储任意的OC 对象的地址 ...原创 2018-11-07 09:30:44 · 897 阅读 · 0 评论 -
OC----访问修饰符
访问修饰符: 用来修饰属性的(不能修改方法). 可以限定对象在一定范围内访问 @private 私有 只能在本类方法实现中访问 @protected 受保护的 只能在本类方法,子类方法实现中访问 @package 框架 被修饰的属性,可以有当前框架中访问 @public 公共的 只要创建对象,可以在任意的地方访问 不写默认: @pr...原创 2018-11-07 09:29:35 · 373 阅读 · 0 评论 -
OC----父类与子类同名属性
子类不能存在与父类同名的方法,属性super 关键字:1. 可以用在类方法,对象方法中, 同self, 继承用super 的可读性要好2. 在对象方法中可以使用 super关键字调用当前对象从父类继承过来的对象方法.[self say] = [super say]3. 在类方法中 super关键字可以调用当前类从父类继承过来的类方法a. 类方法也能被子类继承. 父类中的类方法可以使用父类...原创 2018-11-07 09:26:40 · 2539 阅读 · 0 评论 -
OC----继承
继承:不用自己去定义,继承只是类在继承,子类拥有所有父类的所有成员,属性. XCode 创建时可以选择父类 语法: @interface 类名: 父亲的名称 子类:继承类,派生类. NSObject 是所有类的父类, 只有此类有new 方法,还有属性isa 指针 使用场景: 1. 发现一个类的成员,我与要使用, 不要为继承而继...原创 2018-09-10 09:19:56 · 192 阅读 · 0 评论