Objective - C基础
文章平均质量分 70
MrCain
iOS移动开发工程师, 希望可以和大家好好交流~~
展开
-
Objective - C基础: 第一天 - 6.第一个OC类练习
前面我们知道了类和对象的关系, 也知道了面向对象的核心就是对象, 那么我们运用之前所学到的知识来创建我们的第一个OC类, 下面让我们来看看.下面我们来看一个例子:#import @interface Car : NSObject{ @public int wheels; int speed;}- (void)run;@end@implem原创 2015-01-13 14:25:31 · 668 阅读 · 0 评论 -
Objective - C基础: 第二天 - 10.继承的使用场合和组合使用
在前面, 我们知道了继承的注意事项, 其实继承还有使用的场合, 还有组合的注意事项:首先我们来说使用场合:#import @interface Score : NSObject{ int _mathScore; int _chinaseScore;}@end@implementation Score@end@interface Student :原创 2015-01-18 16:23:17 · 409 阅读 · 0 评论 -
Objective - C基础: 第三天 - 1.NSString的基本认识
前言在第二天里, 我们学习了OC语言中的三大特性, 封装, 继承, 多态, 那么在今天, 我们主要来学习OC语法中的其他知识.开始在C语言里, 我们都知道没有字符串的标准写法, 只能用char[]数组, 或者char *的方式来存储字符串, 那么在OC里又是怎么样存储字符串的呢? 有没有专门的类用来存储字符串? 下面让我们一起来探讨一下~~例子:#import原创 2015-01-19 15:28:24 · 340 阅读 · 0 评论 -
Objective - C基础: 第二天 - 12.OC中的多态
OC中的三大特性, 我们已经讲完了封装,继承, 现在我们来看看最后一个, 多态, 什么是多态呢?? 顾名思义就是有多种形态, 那么在OC中的对象又是怎么样拥有多种形态的呢??? 让我们一起来看看吧~~例子:#import /*********Animal声明**********/@interface Animal : NSObject- (void)eat;@end原创 2015-01-19 13:52:14 · 421 阅读 · 0 评论 -
Objective - C基础: 第二天 - 6.关键字self的基本认识
在前面我们知道了实例方法,类方法, set方法,get方法, 现在我们来讲一个和OC普通关键字(因为OC的关键字都带"@"符号)不一样的self, 那什么是self呢??? 下面让我们一起来看看~~先看一个例子:#import @interface Preson : NSObject{ int _age;}- (void)setAge:(int)age;原创 2015-01-17 21:36:39 · 409 阅读 · 0 评论 -
Objective - C基础: 第二天 - 7.self使用注意事项
前面我们学了self的基本使用, 现在我们来看看self的注意事项~~1.死循环#import @interface Preson : NSObject- (void)test;+ (void)test;@end@implementation Preson- (void)test{ NSLog(@"调用了实例方法."); [self test];原创 2015-01-18 10:25:29 · 413 阅读 · 0 评论 -
Objective - C基础: 第二天 - 5.类方法的练习
前面我们学习了类方法的基本认识, 知道了在哪些场合使用类方法更好, 那么现在我们来练习一下, 设计一个我们的工具类~~PS: 基本上没有用到任何实例变量, 而且里面的方法都是类方法, 这样子的类我们成为工具类.首先我们来看一个例子:#import @interface Calculator : NSObject- (int)sumOfNum1:(int)Num1 andN原创 2015-01-17 18:42:41 · 745 阅读 · 0 评论 -
Objective - C基础: 第二天 - 9.继承的使用注意
在前面, 我们知道了继承的基本认识, 那继承有什么使用注意呢? 又可以怎样组合呢? 下面让我们一起来看看~~例子:#import /**********Person类声明**********/@interface Person : NSObject{ int _weight; double _height;}- (void)setWeight:(int)w原创 2015-01-18 14:02:58 · 420 阅读 · 0 评论 -
Objective - C基础: 第二天 - 8.继承的初体验
OC语言里的三大特点分别是封装,继承, 多态, 在前面我们已经讲过封装思想了, 怎么去运用得需要看个人的修行, 现在我们来讲解继承~~在我们日常生活中也有继承一说, 比如你继承了某人的财产, 你继承了你父母的基因, 你继承了某人的意志(出自火影忍者)等等, 那么在OC上也是同理, 让我们来看一个例子:#import @interface Man : NSObject{原创 2015-01-18 11:19:16 · 390 阅读 · 0 评论 -
Objective - C基础: 第二天 - 4.类方法的简单认识
在之前我们学的东西里, 我们一直都在使用实例方法, 那么除了实例方法之外, 还有没有另外一种方法呢? 答案是有的, 除了实例方法, 还有一种方法叫做类方法, 所谓的类方法其实就是以类名开头, 不需要创建对象, 直接调用的一种方法, 下面让我们一起来探究一下~~例子:#import @interface Preson : NSObject+ (void)printfClass;原创 2015-01-17 10:02:20 · 508 阅读 · 0 评论 -
Objective - C基础: 第二天 - 2.封装练习以及注意事项
前面我们了解了一些封装的思想, 所谓的封装就是把一些成员变量保护起来, 不让别人去随意修改, 其实这个和我们日常生活中的包装很像, 比如超市里的真空包装食品, 经常真空包装的保护, 那么食物就不容易发霉过期, 那么在OC程序里面的封装也是同样的道理, 否则一直使用@public会让别人随意改动自己的数据, 从而导致程序崩溃, 无法正常的运作.那么封装有什么规范呢? 下面让我们来看看原创 2015-01-16 19:54:55 · 501 阅读 · 0 评论 -
Objective - C基础: 第二天 - 11.继承的关键字Super
在前面, 我们学了继承的一些知识, 现在我们来学习继承的最后一个知识点, 也就是Super关键字, 在这之前, 我们就已经学过一个关键字self, 那么这次的Super又会怎么样呢? 让我们一起来看看~~~例子:#import @interface Person : NSObject- (void)run;@end@implementation Person- (vo原创 2015-01-19 00:27:26 · 402 阅读 · 0 评论 -
Objective - C基础: 第三天 - 3.成员变量的作用域
之前我们稍微讲过一些关于成员变量的作用域的知识, 今天我们来复习一下.例子:#import @interface Person : NSObject{ @public int _age; @private NSString *_name; @protected int _height; }@end原创 2015-01-21 15:28:21 · 429 阅读 · 0 评论 -
Objective - C基础: 第四天 - 10.SEL类型的基本认识
在这之前, 我们回想一下, 我们知道实现我们所需要的功能, 就要调用某些方法, 那么这些方法又是怎么样调用的呢? 原理是怎么样的? 让我们一起来探讨一下看看~~例子:#import @interface Person : NSObject- (void)test;@end@implementation Person- (void)test{ NSLo原创 2015-01-24 20:38:38 · 435 阅读 · 0 评论 -
Objective - C基础: 第四天 - 9.description方法
前面讲了一些比较抽象的东西, 类的加载过程以及类别的加载过程, 这次我们来讲讲NSObject自带description方法, 这个方法有两个, 一个是实例方法, 一个是类方法, 下面让我们一起来探究探究吧:例子:#import @interface Person : NSObject@property int age;@property NSString *name;@原创 2015-01-24 15:26:22 · 422 阅读 · 0 评论 -
Objective - C基础: 第五天 - 2.多个对象之间的内存管理
在前面, 我们知道了OC中内存管理的机制, 引用计数, 也对引用计数有了基本的认识, 有些人可能会说, 引用计数而已, 不就是+1, -1么, 有多难? 的确, 在单个对象中的操作的确不难, 但如果是在多个对象之间操作呢? 这个就难了, 为什么这么说? 下面我们来看看示意图:在示例图中, 有两个对象在调用Book, 那么Book的引用计数就为2, 每当释放一个对象Bo原创 2015-01-25 23:04:43 · 489 阅读 · 0 评论 -
Objective - C基础: 第四天 - 7.类的加载过程
在前面, 我们知道了类的本质其实也是一个对象, 是Class类型, 那么类的加载过程是如何的呢?? 其实类的加载过程非常简单,先加载父类然后再加载子类, 而且每一个类就只会加载一次, 下面让我们来看看~例子:#import @interface Person : NSObject+ (void)load;@end@implementation Person原创 2015-01-24 14:08:21 · 1143 阅读 · 0 评论 -
Objective - C基础: 第四天 - 8.类别的加载过程
补充一个加载过程的知识点, 那就是类别的加载过程, 类别的加载过程有一些特殊, 废话不多说, 直接上例子:#import @interface Person : NSObject+ (void)load;@end@implementation Person+ (void)load{ NSLog(@"Person-----load");}+ (void)ini原创 2015-01-24 14:59:58 · 477 阅读 · 0 评论 -
Objective - C基础: 第五天 - 1.计数器的基本认识
前言在我们OC中, 有一个东西是重中之重的知识点, 那就是内存管理, 什么是内存管理呢? 其实内存管理是我们app在运行的时候所使用的内存大小, 在iOS中, 给我们应用设定了一个固定的内存值, 一旦超过这个值, 系统就会给app发送内存警告, 如果这个警告不处理, 那么就会强制关闭应用, 就是我们所说的闪退, 那么内存有多少种呢? 内存其实是分为五种, 分别为堆, 栈, 全局区, 文字常原创 2015-01-25 13:49:08 · 634 阅读 · 0 评论 -
Objective - C基础: 第四天 - 6.类的本质
在前面, 我们学习了OC的很多语法, 还有书写规范, 在这过程中肯定会有人有很多疑问, 今天我们就来讲讲其中的一个东西, 类的本质, 类的本质其实也是一个对象, 为什么这么说呢, 下面让我们来一起探讨一下:例子:#import @interface Person : NSObject@property int age;@end@implementation Pe原创 2015-01-24 13:54:58 · 425 阅读 · 0 评论 -
Objective - C基础: 第四天 - 2.重写init方法
在我们之前的学习里, 我们创建对象的时候都是用new方法, 其实在实际开发中,new是不太正规的写法, 写的太死了, 很有局限性, 所以我们得另寻方法解决, 让我们一起来看看吧~~~例子:#import @interface Person : NSObject@end@implementation Person@endint main(){ Perso原创 2015-01-22 23:38:24 · 468 阅读 · 0 评论 -
Objective - C基础: 第四天 - 1.id类型的基本认识
之前, 我们已经讲了一些关于OC, 还有编译器的一些特性, 比如@property和@synthesize, 这次我们来说说新的特性, 而这个特性就只能运用在OC对象中, 下面让我们一起来看看~~例子:#improet @interface Person : NSObject@end@implementation Person@endint main原创 2015-01-22 15:46:24 · 427 阅读 · 0 评论 -
Objective - C基础: 第四天 - 3.自定义构造方法
在前面, 我们认识了什么是构造方法, 构造方法是不是固定就只有一种呢? 其实不是的, 我们也可以自己定义构造方法, 利用我们自己定义的构造方法来完成更多的功能, 或者说提高我们的编程效率, 下面让我们一起来探究吧~~例子:#import @interface Person : NSObject@property int age;@end@implementation P原创 2015-01-23 12:37:57 · 443 阅读 · 0 评论 -
Objective - C基础: 第三天 - 2.点语法的基本认识
在前面, 我们知道了使用Setter和Getter方法去代替@public去访问成员变量, 在@interface里声明两个方法, 在@implementation里实现, 然后在main()函数里进行调用, 但调用的写法还是有一些繁琐, 所以我们学习另外一种更加好的写法, 点语法, 下面让我们一起来看看吧~~例子:这是我们运用之前所学的知识写出原创 2015-01-21 13:26:09 · 425 阅读 · 0 评论 -
Objective - C基础: 第二天 - 3.OC语法之弱语法
之前, 我们学习了C语言, 知道了C语言是一种弱语法, 它没有把一些不规范的写法直接报错, 而是只有一个警告, 我们都知道警告是可以编译成功的, 只有在运行时或者链接时才会报错, 那么在OC里又是怎样呢? 下面让我们来看看~~C语言例子:int main(){ asdasd(); return 0;}编译的结果:Cain:2.第二天 Cain$ cc -原创 2015-01-16 20:10:53 · 599 阅读 · 0 评论 -
Objective - C基础: 第一天 - 3.BOOL基本认识
前面我们讲解了OC与C的多文件编译, 这次我们来讲解一下BOOL,BOOL类型只有在OC上才有, C语言是没有的, 那么什么是BOOL呢? 下面让我们一起来看看~~例子:#import int main(){ BOOL a1 = YES; BOOL a2 = NO; BOOL a3 = 1; BOOL a4 = 0;原创 2015-01-12 21:43:29 · 606 阅读 · 0 评论 -
Objective - C基础: 第一天 - 13.匿名对象的基本认识
在前面, 我们知道了什么是类与对象的关系, 但使用对象的时候注意陷阱, 因为还有一种对象叫做匿名对象, 下面我们来看看~~例子:#import @interface Eyeglass : NSObject{ @public int lens;}- (void)eyeglassLens;@end@implementation Eyeglass- (v原创 2015-01-15 16:36:41 · 502 阅读 · 0 评论 -
Objective - C基础: 第三天 - 4.@property和@syhthesize的基本认识
在之前, 我们知道了成员变量有多少种作用域, 在默认的@protected需要声明setter方法和getter方法, 这样子才能访问我们的成员变量, 但问题来了, 挖掘机技术哪家....扯远了, 虽然setter方法和getter的确是成功的访问到我们需要的成员变量, 但不好用, 因为需要写的东西太多了, 而且还没有技术含量, 那么如何解决呢??例子:只要在声原创 2015-01-21 22:32:23 · 491 阅读 · 0 评论 -
Objective - C基础: 第六天 - 1.ARC自动引用计数的基本认识
前言:在前面, 我们学习了手动引用计数, 遵循了写一个alloc就写一个release的原则, 也学习了autorelease内存池, 在创建对象的时候调用autorelease方法, 就会在内存池销毁的时候就会对对象进行一次release操作, 但autorelease不能随便乱用, 对多占用内存比较大的最好还是使用手动引用计数, 但这两种方法我们都很懊恼, 很费劲, 必须得写那么一大堆原创 2015-01-28 21:02:46 · 491 阅读 · 0 评论 -
Objective - C基础: 第六天 - 4.block数据类型
在前面我们讲过许多数据类型, 比如基本数据类型, 枚举, 结构体等等, 这次我们来讲最后一个OC中的最后一个数据类型, 那就是block, 在OC开发中,block有些类似函数指针, 但又不完全一样, 下面让我们来看看:例子:#import int sum(int a, int b){ return a + b;}int main(int argc, con原创 2015-01-29 15:46:44 · 518 阅读 · 0 评论 -
Objective - C基础: 第六天 - 2.ARC转换以及第三方框架的管理
在我们之前的项目中, 或多或少都会有手动引用计数的存在, 看到apple出了自动引用计数, 再看看自己的项目, 就有一种砸电脑的冲动, 别着急~~其实apple很为我们开发者着想, 旧项目一样可以转成ARC, 废话少说, 直接上图:后面的操作不需要我讲了吧? 傻瓜式的操作, 一直下一步, 直到完成为止, 这样子你的项目就会焕然一新~~~全世界都舒服晒(粤语)~~原创 2015-01-28 23:48:24 · 400 阅读 · 0 评论 -
Objective - C基础: 第六天 - 2.ARC转换以及第三方框架的ARC管理
在我们之前的项目中, 或多或少都会有手动引用计数的存在, 看到apple出了自动引用计数, 再看看自己的项目, 就有一种砸电脑的冲动, 别着急~~其实apple很为我们开发者着想, 旧项目一样可以转成ARC, 废话少说, 直接上图:后面的操作不需要我讲了吧? 傻瓜式的操作, 一直下一步, 直到完成为止, 这样子你的项目就会焕然一新~~~全世界都舒服晒(粤语)~~原创 2015-01-28 23:33:29 · 366 阅读 · 0 评论 -
Objective - C基础: 第五天 - 5.@property - 参数详解
在前面我们利用了@property来简洁内存管理的代码, 但里面涉及到一些参数有很多人都不明白, 现在我们来一起看看~~1.set方法内存管理相关的参数* retain : release旧值,retain新值(适用于OC对象类型)* assign : 直接赋值(默认,适用于非OC对象类型, 也就是基本数据类型)* copy : release旧值,copy新值原创 2015-01-26 20:30:21 · 419 阅读 · 0 评论 -
Objective - C基础: 第五天 - 6.循环引用
在前面, 我们知道了OC的内存管理以及@property的参数, 其实还有一个叫做循环引用, 其实所谓的循环引用很简单, 就是两个类中, 你包含我, 我包含你, 这个就叫循环引用, 比如下面这个例子:#import #import "Car.h"@interface Person : NSObject@property (nonatomic, retain) Car *car原创 2015-01-27 11:50:28 · 387 阅读 · 0 评论 -
Objective - C基础: 第五天 - 7.autorelease的基本认识
前面我们学了OC内存管理的手动引用计数, 一个alloc, 一个release, 对象的释放由我们自己所决定, 在这里应该会有人问, 这样子运用手动引用计数好累, 有没有简单一点的方法, 答案肯定是有的, 现在我们就来看看第一个简单一点的方法,autorelease方法.首先我们来看看以前所写的例子:#import @interface Person : NSObject原创 2015-01-27 16:31:41 · 381 阅读 · 0 评论 -
Objective - C基础: 第五天 - 4.@property - 内存管理
在前面, 我们基本上讲完了OC的内存管理, 但如果按照我们之前那样子做, 我们需要写非常非常多的代码, 在我们实际开发中, 不可能就只有那么一两个对象, 所以我们需要写的set方法和get方法就一大堆, 比如下面这个例子:#import #import "Book.h"@interface Person : NSObject{ int _age; Book *_book原创 2015-01-26 19:37:44 · 390 阅读 · 0 评论 -
Objective - C基础: 第五天 - 3.set方法内存管理
在前面, 我们对OC的内存管理基本上有了一个认识, 也知道了多个对象的内存管理是如何处理, 虽然在前面的多对象内存管理符合内存管理的原则, 其实还有一定的小bug, 今天我们就来看看如何解决这个bug.例子:#import #import "Car.h"@interface Person : NSObject{ int _age; Car *_car原创 2015-01-26 14:28:53 · 488 阅读 · 0 评论 -
Objective - C基础: 第四天 - 5.类别的基本认识之二
前面我们基本认识了类别是用来怎么用的, 那么现在我们来讲讲在实际开发中的一些事项, 其实在实际开发中, 类别用的最多的是给系统类添加方法的, 因为我们自己自定义的类灵活性比系统类要高, 而系统的类是固定死的, 如果给它添加方法, 我们只能选择使用类别, 下面让我们来看看~~例子:#import @interface NSString (Number)@end@imple原创 2015-01-23 22:06:27 · 391 阅读 · 0 评论 -
Objective - C基础: 第六天 - 3.ARC循环引用
在我们之前的手动引用计数中, 我们都知道在循环引用如果两边使用retain的话, 那么两个对象谁也不会释放谁, 那么在ARC中呢??? 其实也是一个道理, 前面我们知道了ARC的特性, 是使用强弱指针来判断对象是否要被释放, 那么循环引用是否也是一样呢? 下面让我们一起来看看:例子:#import @class Car;@interface Person : NSObje原创 2015-01-29 14:15:35 · 430 阅读 · 0 评论 -
Objective - C基础: 第六天 - 5.protocol协议的基本认识
学到现在, 我们很快就要结束OC的教程了, 讲完protocol, OC语法就全部学完了, 现在我们来看看什么protocol, 在OC中, 我们都知道要.h文件里是用来声明方法和成员变量,.m文件里是用来实现的, 也知道类别是给系统类扩充一些必要的方法, 那么有没有一种机制是用来给我们自定义的类声明方法的呢? 其实是有的, 那就是protocol, 也就是协议, 下面让我们一起来看看:原创 2015-01-29 21:54:47 · 538 阅读 · 0 评论