OC 整理 1

*  面向过程编程(Procedure Oriented programming)

* :以事件为中心,关心完成该事件的详细步骤,一步一步如何实现

面向对象编程(Object oriented programming)

以事物为中心,也就是参与事件的参与者,设计事物的功能,而完成事件,只是事件的所有功能中的一个小功能

//消息发送机制

//[ receiver   Message (消息 , 相对于方法) ]

//receiver :消息的接收者,   类 或者 对象

// Message : 消息 , 相对于方法

// 如何区分消息是给类还是给对象的消息

//如果方法是一个 - 号 方法,--------对象

//如果方法是一个 + 号方法, --------类.

//创建对象分两步:

//1.开辟空间.

//通过 [person alloc] 在堆区开辟的空间才是真正的对象 ,只不过对于指针变量per 存储着堆区的首地址,通过它才能访问对象,所以我们把指针变量per 叫做对象 , (但是 真正的对象是堆区空间 ,per 本质上就是一个指针变量).

//id 可以代表所有的对象类型 ,可以用对应类型的对象来接受.

//    Person *per =   [Person alloc];

//2.初始化(赋初值) inti方法 完成初始化操作 - 号方法,对象调用.

//    per =  [per init];

//通常创建对象操作连起来写

//NO visible @interface for ‘MobilePhone‘ declares the selector ‘call‘

//产生原因: 没有找到给接收者发送的消息 ,(也就是没有找到方法 . h文件中没有该方法)

//解决方法: 查看接受者和对应的消息是否匹配,如果不匹配,改成匹配, 或者给该类添加该方法.

//类: 具有相同特征 和相同行为的事物的抽象,

//类是一个抽象的概念在生活中不具体.

//对象是累的实例, 也就是类的具体表现, 是具体的,生活中的万物都是对象.

//描述一个类: 通过特征(静态属性) 以及行为(动态属性 ,动作)

// insert code here...

//@ 的作用: OC 的标志.

*  类的定义分为两部分:

1,类的接口部分 : 提供外部访问的接口, 相当于使用说明书

2,类的实现部分:相当于功能的实现

*/

/**

*  类的接口部分写下.h文件中

接口部分的定义 :

1. 以@interface 开头,以@end 结束.只有把累的接口定义内容下在开始和结束之间才有效

2. person 代表类名.

3. : 冒号表示继承.表示它有父类.

4. NSObject 父类名

//实例变量必须写在大括号之内 , 而且括号内只能写实例变量

//对应描述一个类的特征.

//实例变量 类似结构体中的结构体成员

*  类的实现部分写在.m文件中

类的实现部分 :

[email protected] 开头 @end 结束,实现内容必须写在中间才有效

[email protected] 后的person 是要实现的类(需要指定要对哪一个类做实现)

Method definition for ‘ print:‘ not found.

原因 : print: 方法虽然在.h文件中声明了,但是没有在 . m 中实现

解决方案: 将该方法在 .m文件中实现

类的实现其实就是实现该类的方法

OC 整理 1

时间: 2024-11-03 03:32:31

OC 整理 1的相关文章

OC 整理 2

*  实例变量的可见度 : 一共三种 @public :公共的,在任何文件中都可以访问.(访问方式是通过对象+指向操作符 + 实例变量,例如:per->Name). @protected :受保护的,有一定的访问权限,只允许在本类文件以及子文件中访问,其他文件不可访问. @private:私有的,只允许在本类文件中访问,不可以在子文件以及其他文件访问. 默认的可见度是@protected 0.0 ... ...为什么不声明为@public? 1, 声明为@public的实例变量,外部就可以访问以

OC 整理 3

//#import "Women.h" @class Women;//把后面的women 当成字符串,不当成类 . //Unknown type name "women" //不能识别的类型women //原因:#import 头文件时. 会将头文件中的内容复制一份,而当使用women 这个类时.给雷还未定义, 所以识别不了.典型的循环导入问题 //解决:使用该类时不能把它当做一个类来使用,所以在.h文件中使用@class women ;将women声明为一个字符串

OC整理1

关于面向对象 看起来简单,好好体会其实有点深奥,初学的时候更感觉抽象,可能由于开发经验不足的关系吧,很难体会到面向对象的精髓. 放轻松,我们来用最直白得方式来探讨一下面向对象. 首先,编程是为了用计算机解决现实生活中的问题,或者模拟各种游戏情景提供娱乐. 面向过程编程是一种思维——知道做一件事的具体步骤,按流程一步一步的执行,致力于问题解决的具体实现步骤. 而我们今天要提起的面向对象也是一种思维方式——是一种模拟人类行为,思考的方式寻求最直接的途径解决问题. 为了说明这一点呢,我们一起来看看我们

IOS开发-OC学习-常用功能代码片段整理

IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是在做与URL有关的功能时,需要在Info.plist中添加一段代码进而实现让网址完成从Http到Https的转换,以及其他的一些功能. 在从一个新手到逐渐学会各种功能.代码.控件.方法如何使用的过程中,也在逐渐积累一些知识,但是一次总不会把这些东西都深刻记住并完全理解.所以在这儿记录下这些东西,用来

我收录整理的优秀OC技术类文章

自定义导航按钮UIBarButtonItem 关于导航栏的六个小技巧 ios开发的一些小技巧篇一 制作一个可以滑动操作的 Table View Cell - IOS - 伯乐在线 一个iOS开发者的修真之路 - IOS - 伯乐在线 iOS性能优化 - IOS - 伯乐在线 block没那么难(一):block的实现 - 作业部落 Cmd Markdown 编辑阅读器 ARC 下内存泄露的那些点 - 作业部落 Cmd Markdown 编辑阅读器 产品经理日常工作职责分析与整理 - 大宝 - 博

OC 字符串操作整理

1 // 2 // main.m 3 // StringMK 4 // 5 // Created by LXC on 16/1/7. 6 // Copyright © 2016年 LXC. All rights reserved. 7 // 2016年01月07日23:51:29 8 // 9 10 #import <Foundation/Foundation.h> 11 12 int main(int argc, const char * argv[]) { 13 @autoreleasep

OC内存管理相关整理

OC内存管理 一.基本原理 (一)为什么要进行内存管理.内存管理的目的是什么? 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等. 管理范围:任何继承NSObject的对象,对其他的基本数据类型无效 管理目的: 1.不要释放或者覆盖还在使用的内存,这会引起程序崩溃: 2.释放不再使用的内存,防止内存泄露.(ios程序的内存资源很是宝贵.) 本质原因是因

OC调用Swift 整理步骤!总结别人的!方便自己查找!

1. 2. 上面的修改了一个配置项,有一个Product Module Name在后面会使用. 在工程里面点击File/New/File…,选择iOS/Source/Cocoa Touch Class,按照如下填写创建一个新的文件:  上图中的Subclass of一定要设置为NSObject或其子类,否则OC工程将不会找到该类. 点击确认后会选择保存路径,点击Create,出现如下界面:  这个界面是询问是否创建桥接的头文件,这个文件在Swift调用OC代码的时候比较管用,但是在OC中调用Sw

OC-NSArray随意整理

//        NSArray *arr = @[@1,@2,@3,@4];  这个不可变数组不行 //1.可变数组 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil]; //2.不可变数组 NSArray *arr1 = @[@"a",@"b"]; NSArray *a = @[@2,@23]; NSA