Object-C小知识
JustinCan
这个作者很懒,什么都没留下…
展开
-
iOS 延迟执行的方法
直接上代码:两种方法有一些底层区别,后续有时间补给大家。// 第一种[self performSelector:@selector(yourFunction) withObject:nil afterDelay:1.0];// 第二种dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)1*NSEC_PER_SEC), dispatch_get_main_queue(), ^{ //此处写执行代码 });原创 2022-05-09 18:53:37 · 821 阅读 · 0 评论 -
iOS NSLog使用技巧
开发调试时经常需要print一些信息做调试,当打印信息的地方多了之后设备上这些输出内容会在很大程度上影响设备性能,可以用宏来控制这些调试信息的输出。#ifdef __OBJC__ #ifdef DEBUG#define JSLog(fmt,...) NSLog((@"%s [Line %d] "fmt),__PRETTY_FUNCTION__,__LINE__,##__VA_ARGS__)#else#define JSLog(...)#endif#endif不同类型的一些打印方式原创 2022-05-04 13:48:24 · 1115 阅读 · 0 评论 -
iOS NSNotification通知的使用介绍
直接上代码 // 获取通知对象 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; /* 注册监听, 1>Observer参数:是哪个对象要监听 2>selector参数:监听的对象收到通知后执行哪个方法 3>name参数:监听通知的名称,明确监听哪个类型名称的通知,可以自定义通知名称。(如果不写,则会监听发出通知对象的所有通原创 2022-04-26 11:37:28 · 720 阅读 · 0 评论 -
Object-C中NSMutableString的用法详解
NSMutableString继承与NSString,对NSString进行了扩展,使得生成的字符串对象可以修改。NSMutableString的创建:NSMutableString *string = [NSMutableString string];不可以用以下方式创建:NSMutableString *string = @"cannot create a new obj";因为,左边指针类型是可变字符串类型,而右边是NSString类型。当对象string调用NSMutable原创 2022-04-15 22:18:56 · 396 阅读 · 0 评论 -
Object-C中单例的特性和实现
一句话介绍单例:整个程序中,无论什么时候无论在哪个类中创建一个对象,创建时取到的对象永远是同一个对象。单例的特性:1.由于在不同位置创建的对象返回的都是同一个对象,因此,单例模式可以作为整个程序的一个共享对象,任何时候任何模块都可以操作访问该单例对象的属性。2.有人说,宏定义也可以全局共享使用。但是单例还有一个重要的特性,就是在程序运行过程中,可以根据实际需求修改单例对象的属性,而宏定义一旦定义后,整个程序运行过程中是无法修改的。单例的实现思路:Object-C中创建一个对象的时候会调用原创 2022-04-15 21:47:45 · 340 阅读 · 0 评论 -
Object-C中关于NSString的解释
NSString是Object-C中Fundationg框架中封装好的专门处理字符串数据,非常重要且使用频率超高的一个基础类。NSString的创建方式: NSString *firstString = @"Justin"; //第一种方式 NSString *thirdString = [NSString new]; //第二种方式 NSString *forthString = [NSString string]; //第三种方式 NSString *seco原创 2022-04-15 10:44:17 · 1305 阅读 · 0 评论 -
Object-C中protocol协议的简单介绍
一句话简单介绍protocol的作用:专门用来声明一些方法,某类遵守了这个协议,相当于拥有了协议中这些所有的方法的声明。创建方式:Xcold中新建OC文件,选择protocol类型,输入协议名称,点击创建,只创建一个.h文件。语法样式:@protocol sampleProtocol <NSObject>@required-(void)showFirstFunction;-(void)showSecondFunction;@optional-(void)execu原创 2022-04-15 09:06:02 · 408 阅读 · 0 评论 -
Object-C中的category的用法
当一个类的方法和实现过于臃肿时或想新增更多原有的类的方法,可以根据实际需求创建一个或多个category(分类)文件,其目的是方便管理和维护代码,为已有的类进行扩展方法。创建category的方法:Xcode中新建文件,选择Object-C file,file type选择category,Class选择要写那个类的分类,然后点击创建。创建完成后显示以下语法样式:@interface NSObject (test)@endcategory的局限:1.category只可原创 2022-04-14 14:26:49 · 298 阅读 · 0 评论 -
Object-C中@synthesize简单介绍
@synthesize通常写在.m文件中的@implementation中。用来自动生成属性的geter/seter方法。原理:@synthesize 成员属性名称 会自动生成一个带下划线的成员变量,自动生成geter和seter方法,但是,seter和geter方法中只会给自动生成的代下划线的成员变量,不会给自身属性赋值。因此,写@synthesize的时候,后边写上:@synthesize people = _people;这样就会给属性赋值了。当自己写了geter和seter方法后,如果不声.原创 2022-04-14 13:24:16 · 773 阅读 · 0 评论 -
Object-C中SEL方法介绍
SEL全程selector选择器,SEL为系统经过typdef定义,声明时不用加*,SEL是一个类,OC的方法都属于这个类型,方法代码存放在内存中的代码段中。OC方法存储在代码的方式:1.先创建一个SEL对象。2.把方法信息存储给SEL这个对象。3.把这个生成的SEL对象作为类对象属性,存储在类对象所在的代码段中。4.多个SEL方法的对象,以类似数组的方式存放在类对象代码段中。OC方法调用的原理:1.获取该方法的SEL对象,SEL *slelector = @selector(方原创 2022-04-14 13:04:27 · 477 阅读 · 0 评论 -
Object-C中@property的说明和使用方法
property原创 2022-04-13 15:35:04 · 580 阅读 · 0 评论 -
Object-C中单个对象内存泄露问题
内存泄露原创 2022-04-13 14:50:36 · 246 阅读 · 0 评论 -
Object-C中NSObject指针和id指针的用法和区别
NSObject和id都属于万能指针,都可以指向任何对象。以下简单介绍一下不用用法和区别:一、NSObject类型指针由于NSObject是一切类的根类,因此,NSObject类没有其它创建对象的一些方法和属性,因此,编译器在编译时,NSObject类型指针指向的对象调用其对象方法和属性时会报错。可以用强转换来表明属于哪种类型,具体格式为:NSObject *obj = XXX; [(类名 *)obj 方法1];若“方法1”是obj对象的方法,则会执行该方法。二、id类型指针id可以指向任何原创 2022-04-13 10:33:04 · 468 阅读 · 0 评论 -
Object-C之初始化init构造方法
当一个类执行new方法时,背后是先执行alloc方法,在执行init方法,然后返回一个已经初始化完成的该类的对象。下面简单介绍一下init的基础内容:一、init执行的目的:1.init执行是初始化对象的方法,同时给属性赋默认值。基本类型(int float double等)会初始化为0。C指针类型,会初始化为NULL,OC指针会初始化为nil。2.init方法可以重写。重写init方法时,先调用[super init],执行父类初始化操作,父类初始化中包含了初始化isa指针等操作。由于内存原创 2022-04-13 10:33:23 · 701 阅读 · 0 评论 -
Object-C之手动内存管理
Object-C之手动内存管理简单介绍原创 2022-04-13 09:32:54 · 1413 阅读 · 0 评论