- 博客(33)
- 收藏
- 关注
原创 字典转换模型
(1)模型就是专门用来存放数据的对象,即数据模型 优点:模型设置数据都是通过它的属性,属性名如果写错了,编译器会马上报错,因此保证了数据的正确性 使用模型访问属性时,编译器会提供一系列的提示,提高编码效率 - (NSArray *)dataArr{ //加载数据 if (_dataA...
2018-06-28 11:50:42
716
转载 获取相册权限导致应用崩溃
应用中获取相册权限应用崩溃crashlog如下:This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSPhotoLibraryUsageDescription key ...
2018-06-12 10:59:05
880
原创 SEL类型
1 SEL类型的第一个作用:配合对象/类来检查对象/类中有没有实现某一个方法 SEL sel = @selector(setAge:); Person *p = [Person new]; BOOL flag = [p respondsToSelector:sel]; /* 判断p对象中有没有实现-号开头的setAge:方法 ...
2018-06-11 10:49:46
533
原创 类的启动过程
(1)只要程序启动就会将所有类的代码加载到内存中, 放到代码区 load方法会在当前类被加载到内存的时候调用, 有且仅会调用一次 如果存在继承关系, 会先调用父类的load方法, 再调用子类的load方法 + (void)load { NSLog(@"Person类被加载到内存了"); } (2)当当前类...
2018-06-05 14:16:32
292
原创 解压assets.car文件
安利一款软件,有图形界面,比cartool好用下载地址:https://github.com/devcxm/iOS-Images-Extractor/releases
2018-06-03 17:41:54
7668
原创 类工厂方法
(1)用于快速创建对象的类方法, 我们称之为类工厂方法 类工厂方法中主要用于给对象分配存储空间和初始化这块存储空间 (2)规范: 1 一定是类方法 2 方法名称以类的名称开头, 首字母小写 3 一定有返回值, 返回值是id/instancetype ...
2018-06-02 10:09:03
800
原创 instancetype与id的区别
(1)instancetype == id == 万能指针 == 指向一个对象 1 id在编译的时候不能判断对象的真实类型 instancetype在编译的时候可以判断对象的真实类型 2 id和instancetype除了一个在编译时不知道真实类型, 一个在编译时知道真实类型以外, 还有一个区别 id可以用来定义变量,...
2018-06-02 10:07:03
2031
原创 new方法与alloc方法
(1)new做了三件事情: 1 开辟存储空间(+ alloc 方法) 2 初始化所有的属性(成员变量)(- init 方法) 3 返回对象的地址 (2)alloc做了什么事情: 1 开辟存储空间 2 将所有的属性设置为0 3 返回当前实例对象的地址 //初始化成员变量, 但是默认情况下...
2018-06-01 14:58:47
717
原创 id类型
(1)id是一个数据类型, 并且是一个动态数据类型 可以用于:1 定义变量 2 作为函数的参数 3 作为函数的返回值 (2)动态类型和静态类型 静态数据类型的特点: 1 在编译时就知道变量的类型, 有哪些属性和方法 2 在编译...
2018-06-01 14:56:48
6438
转载 automaticallyAdjustsScrollViewInsets失效问题
当升级到iOS 11的时候,发现UIScrollView 有莫名其妙的偏移了 可是明明设置了automaticallyAdjustsScrollViewInsets这是因为iOS 11为UIScrollView 添加了新的属性contentInsetAdjustmentBehavior 这是一个枚举找到UIScrollViewContentInsetAdjustmentNever 从来不自动调整和...
2018-05-31 14:35:44
875
转载 _int、NSInteger、NSUInteger、NSNumber的区别和联系
1、首先先了解下NSNumber类型:苹果官方文档地址: https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/Reference/Reference.htmlNSNumber是NSValue的一个子类,它是一个对象来存储数字值包括bool型,它...
2018-05-31 12:16:57
130
原创 加载bundle中的图片
// 方法1UIImage *image = [UIImage imageNamed:@"MyTest.bundle/Test"]; // 方法2NSString *file1 = [[NSBundle mainBundle] pathForResource:@"MyTest.bundle/Test" ofType:@"png"];UIImage *image1 = [UIImag...
2018-05-31 11:54:28
1280
原创 property和synthesize
(1)@porperty是一个编译器指令 在Xocde4.4之前, 可以使用@porperty来代替getter/setter方法的声明 也就是说我们只需要写上@porperty就不用写getter/setter方法的声明 编译器只要看到@property, 就知道我们要生成某一个属性的getter/setter方法的声明 (2)@synt...
2018-05-30 14:48:56
203
原创 实例变量修饰符
(1)@public 可以在其它类中访问被public修饰的成员变量 也可以在本类中访问被public修饰的成员变量 可以在子类中访问父类中被public修饰的成员变量 (2)@private 不可以在其它类中访问被private修饰的成员变量 可以在本类中访问被private修饰的成员变量 不可以在...
2018-05-30 14:47:04
426
原创 - getter-setter方法
(1)由于将来我们经常需要定义一些方法来操作成员变量,而每个方法都必须有一个有意义的名称,而想名字非常难,所以就有了getter-setter方法 getter-setter方法格式和写法都是固定的,所以只要有getter-setter方法我们就不用煞费心思的去想方法名称了,解决我们起名字难问题 并且getter-setter方法还是程序员之间的一种规范,以后别人只要...
2018-05-30 14:45:28
510
原创 匿名对象
(1)匿名就是没有名字, 匿名对象就是没有名字的对象 (2)有名字的对象 只要用一个指针保存了某个对象的地址, 我们就可以称这个指针为某个对象 //p为Person对象 Person *p =[Person new]; (3)没有名字的对象 无论有没有名字, 只要调用new方法都会返回对象的地址 每次new都会新开辟一块存...
2018-05-29 10:46:47
277
原创 修改项目模版
(1)修改项目模板以及main函数中的内容 /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Mac/Application/Command Line Tool.xctemplate/ (2)修改OC文件头部的描述信息 /Applications/...
2018-05-29 10:45:09
3842
原创 结构体作为对象的属性
typedef struct { int year; int month; int day; } Date; @interface Student : NSObject { @public NSString *_name; ...
2018-05-28 18:22:09
1260
原创 全局变量,局部变量和成员变量
@interface Person : NSObject { int age; //成员变量 } @end @implementation Person @end int a; //全局变量 int b = 10; //全局变量 int main(...
2018-05-28 18:19:44
1329
原创 通知的基本使用
- 通知中心 (1)监听通知 XYCompany *com1 = [[XYCompany alloc] init]; com1.name = @“xieyang”; XYPerson *p1 = [[XYPerson alloc] init]; p1.name = @“na...
2018-05-22 13:01:10
255
原创 block的基本使用
block的基本使用block的作用:保存一段代码block的声明://返回值(^block变量名)(参数)void(^block)();block的定义://第一种void(^block1)() = ^{ NSLog(@"调用了block1");};//第二种:如果没有参数,参数可以隐藏,如果有参数,定义的时候,必须要写参数,而且必须要有参数变量名void(^block2)(int) ...
2018-05-21 12:17:02
173
原创 block的两种使用场景
1 保存代码//tableViewController.h#import "TableViewController.h"#import "CellItem.h"@interface TableViewController ()@property (nonatomic, strong) NSArray *items;@end@implementation TableViewContr...
2018-05-21 11:37:15
282
原创 通知在多线程中的使用
(1)通知的基本使用@property (nonatomic, weak) id observe;- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //监听通知(一定要先监听再发出通知, 否则监听不到通知) //方式一 //Observer:观察者 ...
2018-05-20 12:04:49
611
原创 XML的解析
XML全称是Extensible Markup Language,译作“可扩展标记语言”跟JSON一样,也是常用的一种用于交互的数据格式,一般也叫XML文档(XML Document)例如:<videos> <videos name=“name1” length=“30” /> <videos name=“name2” length=“30” />...
2018-05-18 11:31:54
116
原创 JSON的解析
JSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据,一般都是JSON格式或XML格式(文件下载除外)JSON格式很像OC中的字典和数组例如:{“name”:”jack”, “age”:10} {“names”:[“jack”,”rose”,”jim”]}注意:标准JSON格式中key必须用双引号 想要从JSON中挖掘出具体数据,必须对JSON进行解析,将JSO...
2018-05-18 11:22:06
111
原创 runtime:运行时机制
(1)RunTime简称运行时。OC就是“运行时机制”,也就是在运行时候的一些机制,其中最主要的是消息机制 对于C语言,“函数的调用在编译的时候会决定调用哪个函数” 对于OC的函数,属于“动态调用过程”,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用 在编译阶段,O...
2018-05-17 14:53:21
734
原创 RunLoop
(1)基本作用:保持程序的持续运行 处理App中的各种事件(比如触摸事件,定时器事件,Selector事件) 节省CPU资源,提高程序性能(该做事时做事,该休息时休息)(2)RunLoop与线程 每条线程都有唯一的一个与之对应的RunLoop对象 主线程的RunLoop已经自动创建好了,子线程的RunLoop需要主...
2018-05-14 10:23:04
82
原创 NSCache
(1)NSCache是专门用来进行缓存处理的 1 NSCache时苹果官方提供的缓存类,具体使用和NSDictionary类似,在AFNetworking框架和SDWebImage框架中被用来管理缓存 2 苹果官方解释NSCache在系统内存很低时,会自动释放对象(但模拟器演示不会释放) 建议:接收到内存警告时主动调用removeAllObject方法释放对象 3...
2018-05-14 10:04:35
319
原创 SDWebImage框架的基本使用
(1)下载图片且需要获取下载进度#import "UIImageView+WebCache.h"- (void)download1 { [self.imageView sd_setImageWithURL:[NSURL URLWithString:@“url”] placeholderImage:[UIImage imageNamed:@"timg"] options:0 progres...
2018-05-14 09:55:41
260
原创 AFNetworking框架的基本使用
//// ViewController.m// AFN//// Created by 谢暘 on 2018/5/11.// Copyright © 2018年 谢暘. All rights reserved.//#import "ViewController.h"#import "AFNetworking.h"#define Kboundary @"----WebKit...
2018-05-13 16:36:18
913
原创 类方法与对象方法
//只需要将对象方法的-号换成+, 那么就定义了一个类方法 + (int)sumWithValue:(int)value1 andValue2:(int)value2; //声明 + (int)sumWithValue:(int)value1 andValue2:(int)value2 //实现 { return value1 + value2;...
2018-05-13 16:28:34
365
原创 OC中如何编写类的声明和实现
类的声明: @interface Iphone : NSObject { @public float _model; int _cpu; double _size; int _color; } - (void)about; @end 类的实现:@implementatio...
2018-05-13 16:21:49
841
原创 OC与C语言的一些区别
- Foundation.h (1)我们称之为主头文件, 主头文件中又拷贝了该工具箱中所有工具的头文件, 我们只需要导入主头文件就可以使用该工具箱中所有的工具, 避免了每次使用都要导入一个对应的头文件 (2)工具箱的地址: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer...
2018-05-13 16:16:23
1545
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人