
Objective-C
ios编程语言
less more
少则多,简则精
展开
-
OC-代理、block、通知、kvc使用
版权声明:本文为延成原创文章,转载请标明出处代理反向传值//在VCPassByValue2.h文件中定义//定义代理协议@protocol VCPassByValue2Delegate <NSObject>//定义一个协议函数-(void)sendMessage:(NSString*)message;@end@interface VCPassByValue2 : UIViewController//定义一个代理对象 来实现协议函数,达到代理对象改变本身属性的目的@pro.原创 2020-12-17 15:53:34 · 248 阅读 · 0 评论 -
objective-C 格式化输出符
版权声明:本文为延成原创文章,转载请标明出处%@ 对象%d, %i 整数%u 无符整形%f 浮点/双字%x, %X 二进制整数%o 八进制整数%zu size_t%p 指针%e 浮点/双字 (科学计算)%g 浮点/双字%s C 字符串%.*s Pascal字符串%c 字符%C unichar%lld 64位长整数(long long)%llu 无符64位长整数%Lf .原创 2020-07-08 14:07:04 · 437 阅读 · 0 评论 -
OC中枚举常见写法
版权声明:本文为延成原创文章,转载请标明出处@implementation ViewController// 1 << n ,2 ^ nint a = 1 << 0; // 1int b = 1 << 1; // 2int c = 1 << 2; // 4int d = 1 << 3; // 8- (void)viewDidLoad { [super viewDidLoad]; // 只要枚举中有位运算.原创 2020-10-23 16:59:52 · 953 阅读 · 0 评论 -
RunLoop
版权声明:本文为延成原创文章,转载请标明出处什么是RunLoop?从字面意思看:运行循环、跑圈其实它内部就是do-while循环,在这个循环内部不断地处理各种任务(比如Source、Timer、Observer)一个线程对应一个RunLoop,主线程的RunLoop默认已经启动,子线程的RunLoop得手动启动(调用run方法)RunLoop只能选择一个Mode启动,如果当前Mode中没有任何Source(Sources0、Sources1)、Timer,那么就直接退出RunLoop在开.原创 2020-10-09 14:34:26 · 221 阅读 · 0 评论 -
RunLoop处理逻辑
版权声明:本文为延成原创文章,转载请标明出处原创 2020-10-09 14:31:32 · 197 阅读 · 0 评论 -
oc runtime 机制
版权声明:本文为延成原创文章,转载请标明出处oc runtime 机制 只能动态获取某个类的成员属性,不能获取其子类,或者父类的属性例如: unsigned int outCount = 0; Ivar *ivars = class_copyIvarList([UIGestureRecognizer class], &outCount); for (int i = 0 ;i < outCount;i++) { //获取成员属性的名字 NSString.原创 2020-09-19 09:16:35 · 306 阅读 · 0 评论 -
单例 宏定义
版权声明:本文为延成原创文章,转载请标明出处#define interfaceSingleton(name) +(instancetype)share##name#if __has_feature(objc_arc)#define implementationSingleton(name) \+ (instancetype)share##name{ \ return [[s...原创 2020-01-14 14:04:13 · 315 阅读 · 0 评论 -
字符串的基本使用
版权声明:本文为延成原创文章,转载请标明出处文件读取字符串比较字符串搜索字符串截取字符串替换字符串和路径字符串转换文件读取 NSError *error = nil; NSString *path = @"/Users/releasemr./Desktop/content.txt"; NSString *str = [NSString stringWithCon...原创 2020-01-13 11:26:16 · 291 阅读 · 0 评论 -
property修饰符
版权声明:本文为延成原创文章,转载请标明出处//格式://@property(属性修饰符) 数据类型 变量名称;//readwrite:代表生成getter方法,也生成setter方法//默认情况下就是readwrite@property(readwrite)int age;//readonly:代表只生成getter方法@property(readonly)int age;...原创 2020-01-08 16:23:58 · 273 阅读 · 0 评论 -
const,static,extern简介
版权声明:本文为延成原创文章,转载请标明出处一、const与宏的区别(面试题):const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。编译时刻:宏是预编译(编译之前处理),const是编译阶段。编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。宏的好处:宏能定义一些函数,方法。 const不能。宏的坏处:使用大量宏,容易造成编译时间久,每次都需要重新替换。注意: 很多Blog都说使.原创 2020-10-22 17:46:51 · 157 阅读 · 0 评论 -
self.xx与_xx区别
版权声明:本文为延成原创文章,转载请标明出处self.xx是调用的xx属性的get/set方法,而_xx则只是使用成员变量_xx,并不会调用get/set方法使用原则:在类内部访问变量的时候用“_”;在类外部也就是其他类里访问这个类的变量时用“.” 语法;...原创 2020-07-11 11:24:07 · 336 阅读 · 0 评论 -
assign和weak的区别
版权声明:本文为延成原创文章,转载请标明出处ARC:才有weakweak:__weak 弱指针,不会让引用计数器+1,如果指向对象被销毁,指针会自动清空assgin:__unsafe_unretained修饰,不会让引用计数器+1,如果指向对象被销毁,指针不会清空...原创 2020-10-23 16:56:51 · 330 阅读 · 0 评论 -
strong,weak,assign,copy,retain的区别
版权声明:本文为延成原创文章,转载请标明出处iOS内存管理非OC对象(基础数据类型)存储在栈上OC对象存储在堆上他们区别就在于赋值时是否重新分配内存,引用计数是否变化。在ARC条件下 (strong,weak, copy, assign) :strong: 表示指向并拥有该对象,不会开辟新的内存空间属于浅拷贝。其修饰的对象引用计数会增加1。该对象只要引用计数不为...原创 2019-11-25 10:53:51 · 395 阅读 · 0 评论 -
typedef和define区别
版权声明:本文为延成原创文章,转载请标明出处1.typedef类型定义简单地说就是给对应类型改个名字。typedef double doubleA; //给double取别名为doubleAtypedef struct Man{ NSString *name }Oldman; //给man结构体取别名为Oldman。[使用: Oldman m = {"hah"};]...原创 2019-11-15 10:34:21 · 302 阅读 · 0 评论