![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Objective-C
文章平均质量分 79
胡琰士
这个作者很懒,什么都没留下…
展开
-
Objective-C 多线程
我们介绍多线程首先我们需要一些基础知识一下我们一一介绍进程进程:指在系统中正在运行的一个应用程序,每个进程是独立,每个京城都运行在其专用受保护的内存空间。这也就是说多进程要比多线程健壮我们之后介绍。线程线程:是进程的基本执行单元,一个进程的所有任务都在线程中执行,在一个线程中任务都是串行(顺序执行)。线程通信线程通信:在一个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信,比如一个线程传原创 2017-02-05 01:27:08 · 702 阅读 · 0 评论 -
Objective-C 属性(2)
上一篇中我们定义属性使用copy,@property里面各种各样的配置到底是什么呢,我们该如何使用?其中atomic, nonatomic, readonly, readwrite, assign, retain, copy 这些关键字有什么用呢?我们看看下面的代码:@interface Person:NSObject{@property(nonatomic,copy) NSString *nam原创 2017-01-24 21:15:03 · 248 阅读 · 0 评论 -
Objective-C 内存管理
前言前两篇中Objective-C属性,在定义属性时我们使用一系列关键字,比如:retain,release,assgin,copy,strong,weak等等,那么这些关键字到底在程序运行起什么作用呢?下面我们通过内存管理来深刻的理解这些词的具体作用。介绍内存管理:程序在运行过程中,会创建很多的类和对象,而创建类和对象就要占用内存空间,基本类型都是系统自动管理放在栈区,而创建的类和对象放在堆区,我原创 2017-01-27 21:35:54 · 346 阅读 · 0 评论 -
Objective-C Runtime
介绍runtime到底是什么?也有人说“Objective-C是最优美的语言”,那么到底是为什么?runtime和Objective-C的关系是什么样的?runtime有什么作用,具体能干什么?runtime的原理是什么,什么是消息机制?runtime的使用需要注意什么?一下我们将围绕这几个问题展开来做介绍。runtime是什么在上一篇博客中说道runtime 是运行时库,其实这样去介绍是不全面的,原创 2017-02-14 22:42:15 · 332 阅读 · 0 评论 -
Objective-C Block
简介Block在我们的开发中是非常常见的,比如值得反向传递,我们定义一个Block,就可以完成,对我们编程非常的方便,那么Block到底是从哪里来的呢?他有哪些注意事项?Block:其实就是一段代码块,也称作闭包。Block是C语言提供的功能,Objective-C是基于C语言,自然Block也具有同样的功能,同时更加强大。Block使用Block定义:返回值类型/方法 (^块名称)(参数的类型)原创 2017-01-31 01:25:18 · 322 阅读 · 0 评论 -
Objective-C Block(2)
Block内部定义我们想要知道Block的实现过程,首先我们深入Block,下图是对Block的结构是在栈中的结构。在实际开发Block的使用非常多,作为方法参数,比如网络请求的失败和成功回调,SDWebImage也同样使用多种闭包来完成对应的功能,我记得曾经用的一个插件把Selecte做成Block也是很方便,但是在使用的时候要注意。原创 2017-01-31 23:38:43 · 299 阅读 · 0 评论 -
Objective-C 程序内存分布
程序在运行中会占用内存,一般内存中分为堆区,栈区,代码区等那么Objective-C的内存分布又是什么样的呢?内存分布我们查看内存分布是我们可以通过打印内存地址比如说堆和栈,他们的内存地址相距就非常非常远,我们通过下面的图片来了解内存程序运行时内存的分布情况。全局区:存放全局变量和常量非初始化(bss):存放没有被初始化或初始化为0的全局变量;初始化(data): 初始化过的全局变量数据,用来保原创 2017-02-01 21:39:37 · 530 阅读 · 0 评论 -
Objective-C 协议(protorcol)
Objective-C 没有像C++那样可以使用多继承,但是由想要拥有各类的方法,同时还要兼顾低耦合,这个时候引入了协议(protorcol)。今天去苹果官方查看API,发现这样的图觉得挺好看。协议我们先看一下苹果多协议的描述:https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-C原创 2017-02-02 21:04:09 · 474 阅读 · 0 评论 -
Objective-C 通知(NSNotification)及实现原理
简介通知(NSNotification),是采用“观察者”模式来实现,发送通知的本身不需要知道使用者是谁,也不用知道有几个使用者,只需要在通知中心发送通知就可以实现消息的一个或者多个的传递。以下是苹果对通知的定义: https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaC原创 2017-02-03 22:58:08 · 4289 阅读 · 0 评论 -
Objective-C 属性
属性是什么通常意义我们使用类的属性无非两种(getter和setter),访问属性和设置属性这两种。Objective-C(一下简称OC)中的属性也离不开这两点,OC中为属性的访问控制方法(getter和setter)遵循封装的原则,我们不需要知道底层的具体实现,我们只需要按照约定定义使用即可。OC中的属性OC中的属性定义和方法封装时考虑的因素也是非常多,一下我简单列举了一些: - OC中属性要支原创 2017-01-23 20:47:02 · 301 阅读 · 0 评论 -
Objective-C id类型
介绍id 类型是一个万能的对象指针类型,可以指向任意类型的对象,相当于NSObject *我们来看id的定义typedef struct objc_object { Class isa;} *id; 我们在使用的时候和正常类一样使用,但是不能使用点语法,可以使用set方法。id teach = [[Person alloc] init];[teach setName:@"Gavin"];i原创 2017-02-13 22:01:38 · 826 阅读 · 0 评论 -
Objective-C Foundation框架
介绍Foundation是定义了对象、数据类型、集合和系统服务的基本类。是Mac、iOS中其他框架的基础,其中包含很多开发中常用的数据类型:结构体、枚举和类等。我们来看官方的定义 https://developer.apple.com/reference/foundation Foundation Access the essential classes that define basi原创 2017-02-05 21:17:57 · 290 阅读 · 0 评论 -
Objective-C NSString
介绍我们现在开发都是面向对象,面向对象的优点就不在这里介绍了,NSString就是字符串面向对象的产物,一个NSString对象就代表一个字符串。NSString创建1.直接创建NSString *str = @"string";2.格式化的方式NSString *str = [NSString stringWithFormat:@"My age is %d", 10];NSString *str原创 2017-02-06 21:31:16 · 322 阅读 · 0 评论 -
Objective-C NSArray
简介NSArray是OC中的数组类,相比较C语言的数组它可以存放不同类型的数据可以动态的添加和删除数组元素,同时使用的时候也需要注意,NSArray只能存放OC对象,并且是有顺序的,不能存放非OC类,比如int、foat、dounule、char、enum、struct等。我们初始化完毕之后, 它里面的内容就永远是固定的, 不能删除里面的元素, 也不能再往里面添加元素。创建+ (instancety原创 2017-02-07 20:36:58 · 389 阅读 · 0 评论 -
Objective-C NSDictionary
介绍NSDictionary翻译为“字典”作用通过一个key找到对应的value,NSDictionary是不可变的, 一旦初始化完毕, 里面的内容就无法修改。创建+ (instancetype)dictionary;+ (instancetype)dictionaryWithObject:(id)object forKey:(id <NSCopying>)key;+ (instancetype原创 2017-02-08 22:33:41 · 490 阅读 · 0 评论 -
Objective-C Runtime(2)
上一篇Runtime中介绍了类最终都是以C语言结构体的形式展现,那么C语言中结构体是什么样的有哪些特新和作用呢?结构体在C语言中结构体是一种集合,比如包含基础数据类型的int,char ,double等等,可以包含我们想要的数据。结构体也是一种数据类型,我们一颗创建一个结构体,并对其进行修改。结构体本身不占用内存空间,结构体变量占用一块连续的内存空间。上一篇中我们提到OC的类最终是C语言的结构,而C原创 2017-02-17 15:03:53 · 454 阅读 · 0 评论 -
Objective-C NSFileManager与沙盒
NSFileManager看名字我们就知道是用来管理文件的,那么他能管理那些区域的文件,我们就引入了“沙盒”“沙盒”沙盒(sandBox),是一个应用在使用期间所使用磁盘空间称为沙盒,每个应用都有三个目录(Documents,Library,tmp)。我们可以再模拟其中的Applications的目录下查看。Documents:应用将数据储存在Documents中,但基于NSUserDafault原创 2017-02-09 16:45:28 · 377 阅读 · 0 评论 -
Objective Runtime(3)
上一篇主要介绍了Objective-C的消息机制,这一边中我们介绍常用Runtime库中常用的方法和一些特性Runtime.hClass object_getClass(id obj)Class object_setClass(id obj, Class cls) BOOL object_isClass(id obj)const char *object_getClassName(id obj原创 2017-02-20 14:27:41 · 400 阅读 · 0 评论 -
Objective-C NSObject
NSObject常用方法NSObject可以说是所有类的基类,也就是抽象类,那么他提供那么方法呢,我们一起来看一下1.判断是否为aClass或者aClass的子类的实例- (BOOL)isKindOfClass:(Class)aClass;这个方法经常用到,尤其是我们自己写框架给别人用的时候经常判断类型2.判断是否为aClass的实例(不包括aClass的子类)- (BOOL)isMemberOfC原创 2017-02-12 19:53:56 · 367 阅读 · 0 评论 -
Objective-C 数据持久化
简介在开发通常需要我们把一些数据存储在本地,这篇我们来介绍iOS中数据持久化得方法。1.属性列表2.对象归档3.偏好设置4.嵌入式数据库(SQLite3)5.苹果公司提供的持久化工具 Core Data以下我们围绕这4种方式逐一介绍,在上一遍种我们介绍了“沙盒”和文件管理的基础知识,我们将以上一篇为基础进行介绍后面内容1.属性列表属性列表(plist),指定应用的配置比如tabbar的状原创 2017-02-10 23:49:34 · 1124 阅读 · 0 评论