
Objective-C系列
文章平均质量分 81
请叫我小白同学啊
路上的iOS小白
展开
-
Objective-C之类和对象(3)
一.概述: 前面补充了对象方法、类方法、方法参数~ 现在了解一个关键词:Self二:Self: Self是一个指针,谁调用了当前方法,self就指向谁 ***【出现在对象方法中,就代表着当前对象,出现在类方法中,就代表着当前类】*** *** 大家需要记住下面的规则: 1.实例方法里面的self,是对象的首地址...原创 2018-07-08 17:40:04 · 225 阅读 · 0 评论 -
Objective-C之点语法和属性
一.点语法 点语法的本质是对 set 和get方法的调用.Student *stu = [[Student alloc] init];stu.ID = 10;//set方法 注意: 1.stu.ID = 10,不是给Student成员变量ID “直接赋值”,而是调用Student中的setID方法,“间接”给成员变量赋值,并且传递10,所...原创 2018-07-14 18:52:17 · 1206 阅读 · 0 评论 -
Objective-C之构造方法
一.构造方法的调用: Person *p = [Person new];New方法内部做了两件事:1.使用alloc方法来分配存储空间(返回分配的对象)。 2.使用init方法来对对象进行初始化。把new方法进行拆开: 1.调用类方法+alloc分配存储空间,返回未经初始化的对象Person...原创 2018-07-15 11:35:22 · 418 阅读 · 0 评论 -
Block总结(上)
一.概述:Block是一种特殊的数据类型(本质:对象),其可以正常定义变量、作为参数、作为返回值 Block还可以保存一段代码,在需要的时候调用,目前Block已经广泛应用于iOS开发中,常用于GCD、动画、排序及各类回调 二.声明、赋值、与调用:1.声明:Block变量的声明格式为: 返回值类型(^Block名字)(参数列表);// 声明一个无返回值,参数为...原创 2018-07-29 18:00:59 · 302 阅读 · 0 评论 -
Objective-C内存管理(上)
一.概述: 1.内存的作用:存储数据(例子:声明一个变量,会将变量的数据存储到内存之中)。 2.当数据不再被使用的时候,占有的内存空间如何被释放: 内存中的五大区域:1.栈:局部变量,当局部变量的作用域被执行完毕之后,这个局部变量就被系统回收。2.BSS段:未初始化的全局变量、静态变量。一旦初始化就回收...原创 2018-07-21 14:01:04 · 332 阅读 · 0 评论 -
Block用法总结(下)
一.Block在MRC下的内存管理:void(^myBlock)() = ^{NSLog(@"--");};myBlock();默认情况下,Block的内存存储在栈中,不需要开发人员对其进行内存管理 当Block变量出了作用域,Block的内存会被自动释放Person *p = [[Person alloc] init];void(^myBlock)()=^{N...原创 2018-07-29 22:50:20 · 634 阅读 · 0 评论 -
Objective-C内存管理(中)
一.概述:1.@property作用:1.生成private修饰的私有的成员变量2.生成成员变量的set/get方法的声明3.生成成员变量的set/get方法的实现.2.property参数:@property(参数1,参数2,....)数据类型 名称;3.MAC下的@property的四组参数:与多线程相关的两个参数 nonatomic - atomic...原创 2018-07-21 16:35:45 · 297 阅读 · 0 评论 -
Objective-C内存管理(下)
一.autorelease(自动释放池)1、autorelease 的基本用法(1) 会将对象放到一个自动释放池中(2) 当自动释放池被销毁时,会对池子里面的所有对象做一次 release 操作(3) 会返回对象本身(4) 调用完 autorelease 方法后,对象的计数器不变//写完这行代码,就不用再写【p release】;Person *p = [[[Perso...原创 2018-07-22 14:16:07 · 201 阅读 · 0 评论 -
Objective-C之ARC
一.ARC:自动引用计数,即ARC。系统自动帮助我们去计算对象的引用计数器的值。在程序中使用ARC非常简单,只需要像往常那样编写代码,只不过永远不要写retain、release、autorelease 允许重写dealloc,但是不允许调用[super dealloc];特别注意的是ARC是编译器机制,当ARC开启时,编译器会自动的在合适的地方插入retain、release、au...原创 2018-07-22 17:49:55 · 986 阅读 · 0 评论 -
Foundation之结构体总结
一.NSRange :表示相关事物的范围.typedef struct _NSRange { NSUInteger location; NSUInteger length;} NSRange;location 字段为该范围的起始位置 length 字段为该范围内所含元素的个数 (从location开始算.(用数学1开始数) )2.创建:(1)直接给字段...原创 2018-07-31 14:02:28 · 295 阅读 · 0 评论 -
Foundation之NSDate总结
一.NSDare初始化:获取当前日期:NSDate *dare = [NSDate date];此时 date 代表的就是当前时间,默认是时区格林治时间(0 时区时间) 2.常用api: 获取从某个日期开始之前或者往后多久的日期,此处60代表晚60秒,如果需要获取之前的,将60改为-60即可NSDate *date = [[NSDate alloc] initWithT...原创 2018-07-31 16:44:57 · 299 阅读 · 0 评论 -
KVO用法总结
一.概述:KVO全称KeyValueObserving,是苹果提供的一套事件通知机制。作用:允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。注意:由于KVO的实现机制,所以对属性才会发生作用,一般继承自NSObject的对象都默认支持KVO。使用KVO只需要两个步骤:(1)注册Observer;(2)接收通知。 (3) 当观察者不需要监听时,可以...原创 2018-07-28 17:40:10 · 3636 阅读 · 0 评论 -
Objective-C之多态
一.基本概念: 1.多态在代码中的体现,即为多种形态,一定要有继承,没有继承就没有多态。 2.在使用多态时,运行时会进行动态检测,向真实的对象发送信息(方法) 体现:多态在代码中:父类指针 指向 子类对象。二.例子: 动物类:#import<Foundation/Foundation.h>@interface Animal : NSObject-(...原创 2018-07-14 15:10:59 · 427 阅读 · 0 评论 -
Objective-C之类和对象(2)
一概述: 前面大概了解了类和对象,现在继续补充。 注意: 1.成员变量和方法不能用static等关键字来修饰,不要和C语言混淆。 2.对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样调用 3.函数内部不能直接通过成员变量名访问对象的成员变量二.方法补充: 一.对象方法: (1...原创 2018-07-07 17:37:41 · 174 阅读 · 0 评论 -
Objective-C之封装
一概述: 面向对象的三大特性:封装(成员变量)、继承和多态。 @interface就好像暴露在外面的时钟表面,像外界提供展示以及接口。 @implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来。二.封装成员变量 在开发过程中,考虑到安全性要求,我们一般不在成员变量名前面使用@public、@protected等关键...原创 2018-07-08 19:53:59 · 478 阅读 · 0 评论 -
Objective-C之继承
一概述: 富二代继承了父母,自然就拥有了父母拥有的所有资源。 子类继承了父类同样就拥有了父类所有的方法和属性(成员变量)。 在这里动物是猫类和狗类的父类,黑猫和白猫类是猫类的子类。 继承的好处: (1)抽取出了重复的代码 (2)建立了类和类之间的联系 继承的缺点: ...原创 2018-07-09 15:31:03 · 431 阅读 · 0 评论 -
Objective-C之类的本质
一.类也是个对象: 其实类也是一个对象,是Class 类型的对象,简称 “类对象”Class 类型的定义:(官方认证)#if !OBJC_TYPES_DEFINED/// An opaque type that represents an Objective-C class.typedef struct objc_class *Class;/// Repr...原创 2018-07-16 17:30:53 · 273 阅读 · 0 评论 -
Objective-C之description 方法 和 SEL
一.description: 默认情况下: 使用NSLog和%@打印 "对象":如(@“%@”,P)默认打印输出为<类名:内存地址>。person *p = [[person alloc] init];p.age = 18;p.name = @"xxx";NSLog(@"%@",p);//直接使用nslog和%@打印对象 流程:...原创 2018-07-16 19:54:21 · 389 阅读 · 0 评论 -
Objective-C之数据类型
一概述: Objective-C是在C语言基础上拓展出的新语言,所以它是能兼容C语言代码的,C语言中的基本数据类型如int、float、double和char在Objective-C中是完全可以正常使用的。除此之外,Objective-C还拓展了一些新的数据类型如BOOL、id、instancetype等。二.新特性的介绍: 1.BOOL类型介绍: 1.打开Xcode,创建一个O...原创 2018-07-04 13:48:30 · 1059 阅读 · 0 评论 -
Objective-C之新特性
程序介绍:小知识:1.OC程序的源文件的后缀名是 .m , .m代表message表示消息机制。2.main依然是OC程序的入口和出口,main函数有个int类型的返回值,代表程序的结束状态.3.#import 预处理指令,是#include指令的增强版,作用:是将文件的内容在预编译的时候拷贝到写指令的地方。 #import做了优化,同一个文件无论#import多少次,都只会包含一次. 原...原创 2018-07-05 09:51:52 · 961 阅读 · 0 评论 -
Objective-C之新特性(2)
一概述: 前面几篇,有讲过一个类型是在运行时才确定下来的,接下来仔细讲讲Objective-C这门语言~二.为什么说Objective-C是一门动态的语言? 1.什么是动态语言: 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等结构上的变化。例如JavaScript、Ruby、Python便是一个动...原创 2018-07-06 10:36:05 · 206 阅读 · 0 评论 -
协议
一概述:1.Protocol(协议)的声明看起来类似一个类的接口,不同的是Protocol没有父类也不能定义实例变量。2.Protocol是一种特殊的程序设计结构,用于声明专门被别的类实现的方法。因为OC是单继承的,由于不支持多继承,所以很多时候都是用Protocol和Category来代替实现多继承。3.Protocol只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只...原创 2018-07-24 21:18:58 · 326 阅读 · 0 评论 -
Category和Extension
一概述:Category是Objective-C 2.0之后添加的语言特性,Category又叫分类、类别、类目,能够在不改变原来类内容的基础上,为类增加一些方法。除此之外,Category还有以下功能:(1)将类的实现分开写在几个分类里面。这样做的好处:可以减少单个文件的体积 可以把不同的功能组织到不同的Category里 可以由多个开发者共同完成一个类 可以按需加载想...原创 2018-07-24 21:52:15 · 377 阅读 · 0 评论 -
Objective-C之类和对象(1)
一概述: 1.类-统称: 类是对一群具有相同特征或者行为的事物的一个统称,抽象的,不能直接使用的,如果使用类的话,只能去类中找到类的具体存在,也就是对象,然后使用。 2.对象-具体: 对象是现实生活中一个具体对存在,看得见,摸得着,拿过来就可以直接使用. 例如:学生就是个类,学生有姓名、学号、身高等特征,也有上学、读书等行为...原创 2018-07-07 16:07:29 · 229 阅读 · 0 评论 -
KVC用法总结
KVC全称是Key Value Coding,定义在NSKeyValueCoding.h文件中,相当是一个代理,是对NSObject的扩展来实现的。KVC提供了一种间接访问其属性方法或成员变量的机制,可以通过字符串来访问对应的属性方法或成员变量。 作用:1.在运行时动态在访问和修改对象的属性,而不是在编译时确定. 2.继承了NSObject类的,都能使用KV...原创 2018-07-27 23:40:31 · 423 阅读 · 0 评论