oc 类的使用】的更多相关文章

OC 类簇与复合 类簇: 类簇是Foundation框架中广泛使用的设计模式.类簇将一些私有的.具体的子类组合在一个公共的.抽象的超类下面,以这种方法来组织类可以简化一个面向对象框架的公开架构,而又不减少功能的丰富性. 简单的来说,NSString是个"工厂类",然后它在外层提供了很多方法接口,但是这些方法的实现是由具体 的内部类来实现的.当使用NSString生成一个对象时,初始化方法会判断哪个"自己内部的类"最适合生成这个对象,然后这个"工厂"…
01第一个OC 类 本文目录 • 一.语法简介 • 二.用Xcode创建第一个OC的类 • 三.第一个类的代码解析 • 四.添加成员变量 • 五.添加方法 • 六.跟Java的比较 • 七.创建对象 • 八.访问公共成员变量和方法说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C.如果你还没有编程经验,或者对Objective-C.iOS开发不感兴趣,请忽略.学习本专题之前,建议先学习C语言专题.OC是一门面向…
(一)学习目标: 1.面向对象基本概念: OOP的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题步骤中的行为. 2.熟悉OC类的定义: OC类分为两个文件,.h 和 .m文件 .h 文件存放类.函数声明,类声明用关键字@interface @end 来声明 .m文件存放的是具体实现,类实现使用关键字@implementation @end 来实现 + 表示类的方法,相当于 JAVA中的静态函数 -  表示对象方法,对象实例化可…
一.创建一个新的OC类: 1.点击File->New File,打开Choose a template for your new file窗口,选择Objective-C class,点击Next按钮. 2.Choose options for your new file窗口,在Class中输入Student类名,Subclass of中输入子类NSObject父类名称.点击Next按钮. 3.选择类所在的存储路径.点击按钮 4.在项目中生成了Student.h和Student.m文件 .h类声…
本次是OC的第一节课,主要是学习和理解类与对象 1.面向对象 1> OOP(Object Oriented Programming)面向对象编程. 面向对象以事物为中心,完成某件事情都需要哪些事物来参与,参与该事件的事物都有哪些功能,完成该事件需要这些事物相互协作共同完成,并且完成该事件只是所有事物功能中其中的⼀个⼩功能. 2> 面向对象与面向过程的区别 3> 面向对象优点 面向对象具有良好的可扩展性和重用性. 面向对象可以降低我们代码的耦合度,提高代码的可移植性. 面向对象接近于日常生…
Obj-C中没有包得概念,使用前缀进行区分 自带类用NS开头命名 关键字使用@开头   A. 第一个OC程序 1. 导入Foundation框架的主头文件 #import <Foundation/Foundation.h> 自动过滤重复引入的文件   2. 源代码和头文件 (1) .h : 类的声明文件 (2) .m : 类的实现文件 3.使用终端编译链接OC程序 例如:编译链接 02OC.m  cc 02OC.m -framework Foundation 系统默认带的是C函数库,必须加上…
以forkingdog的PorotocolKit举例 举例 ProtocolKit Protocol extension for Objective-C Usage Your protocol: @protocol Forkable <NSObject> @optional - (void)fork; @required - (NSString *)github; @end Protocol extension, add default implementation, use @defs ma…
几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一些旧东西,但但是既然遇到了,还是复习一下. 一.类与对象 1.类:类是定义同一类所有属性和方法的蓝图或原型. 2.对象:用来描述客观事物的一个实体,由具体的属性和方法构成. 3.类与对象的关系:类是用来制作无数实体(对象)的工程图纸. 4.类的特征:属性 5.类的行为:方法 二.封装 1.类就是封装…
1.Objective-C是C语言的超集,完全兼容C语言 2.所有的关键字都以“@”开头,例如:@interface,@class,@implementation 3.Objective-C的所有对象必须继承于NSObject,并且不存在多继承 4.Objective-C支持协议,支持多态 5.Id类型 类似泛型对象,void* 类似任意的指针类型 “-”表示对象方法 “+”表示类的方法 一:类的定义 ◆ .h文件:存放类和声明方法 声明使用 @interface 开头 @end 结尾 #imp…
1.类与对象的关系 面向对象的核心就是对象,那怎么创建对象? OC中创建对象比较复杂, 首先要理解一个概念叫做类. 现实生活中是根据一份描述,一份模板创建对象,编程语言也一样,也必须先有一份描述,在这个描述中说清楚将来创建出来的对象有哪些属性和行为 OC中的类相当于图纸,用来描述一类事物.也就是说,要想创建对象必须先有类 OC利用类来创建对象,对象是类的具体存在, 因此面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象 2.如何声明一个类 格式 注意: 1.必须以@interfa…
一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警告): (4)方法调用的…
//定议一个Hello类,用@interface @end包着,并且继承NSObject @interface Hello : NSObject{ int num; }//包在大括号里面是私有的属性,外界是访问不到的 -(id)init;//类似构造方法,但是还是很有区别的,内置的一个初始化方法 -(void) sayHello;//-为公开方法 @end //实现Hello类 @implementation Hello //以下是init是自动产生的模板方法 - (instancetype)i…
一.基础语法 1.在OC中,一般用2个文件来描述一个类: 1> .h:类的声明文件,用于声明成员变量.方法.类的声明使用关键字@interface和@end. 注意:.h中的方法只是做一个声明,并不对方法进行实现.也就是说,只是说明一下方法名.方法的返回值类型.方法接收的参数类型而已,并不会编写方法内部的代码. 2> .m:类的实现文件,用于实现.h中声明的方法.类的实现使用关键字@implementation和@end. 2.方法 1> 方法的声明和实现,都必须以 + 或者 - 开头…
经过前一段时间C语言 的学习,从这周开始正式步入OC的学习 OC中类的定义:同一类事物的抽象,对象则与之相反,是抽象的类的具体化. OC中定义属性字段时通常在元素前面加上_如 NSString * _name; int _age; BOOL _sex; 未经声明的变量一般为受保护的变量,无法被外界访问,在OC中存在如下三种修饰符 默认为被保护的(protected: 意味着只能够本类或者子类可以访问) 私有的(private: 只能够本类访问) 共有的(public: 所有的类都能够访问) 在某…
1.如何声明一个类 格式 注意: 1.必须以@interface开头,@end结尾 2.成员变量的声明,必须写在@interface与@end之间的大括号中 3.方法的声明必须在{}下面,不能写在{}中 2.如何实现一个类 格式 @implementation MyClass - (id)initWithString:(NSString *)aName { //写代码处 } + (MyClass *)myClassWithString:(NSString *)aName { //写代码处 } @…
为一个类扩展功能:1.子类化:2.修改源代码:3.定义协议:4.Category:类目 1.Category 1> Category的作用 Category:也叫分类,类目,是为没有源代码的类扩充功能. 扩充的功能会成为原有类的一部分,可以通过原有类或者原有类的对象直接调用,并且可继承. 该方法只能扩充方法,不能扩充实例变量. 作为子类的替代手段(不需要定义子类,直接使用现有类的对象调用方法). 一个庞大的类可以分模块开发,能够更好的对类中的方法进行更新和维护. 2> Category文件的创…
.h文件 @interface NewClassName:ParentClassName { 实例变量://基本类型和指针类型  不能在这里初始化,系统默认会初始化 系统初始化遵循: 实例变量类型  默认值 Byte 0 short 0 int  0 long 0L char    \u0000' float 0.0F double 0.0D Boolean FALSE pointer   nil ~~~~ } 方法的声明: ~~~~ - (void) method: (int) argumen…
1:类的本质:类也是一种类,可以叫做类类,类对象,类类型: 2:类和对象在内存中分配问题(注意区分类的对象和类对象的概念) 类对象在内存中只有一份,且只加载一次,类对象中存放了类中定义的方法: 而成员变量和isa指针,存放在了类的对象中;isa指针指向了类对象:如图: 3:类本身也是对象,是class类型的对象: // 以person为例 Person *p1 = [[Person alloc] init]; Person *p1 = [[Person alloc] init]; // 获取类对…
(一)类的本质 类对象(class object)与实例对象(instance object) 类本身也是一个对象,是class类型的对象,简称“类对象”. 在/usr/include/objc/objc.h 和 runtime.h 中找到对 class 与 object 的定义: Class 是一个 objc_class 结构类型的指针;而 id(任意对象)是一个 objc_object 结构类型的指针, 其第一个成员是一个 objc_class 结构类型的指针.注意这里有一关键的引申解读:内…
类的本质 类的本质其实也是一个对象(类对象) 类对象 类对象再程序运行时一直存在 类对象是一种数据结构,存储类的基本信息:类大小,类名称,类的版本以及消息与函数的映射表等 类对象所保存的信息在程序编译时确定,在第一次使用该类的时候加载到内存中 类对象代表类,class代表类对象,类方法属于类对象 如果消息的接受者是类名,则类名表示类对象 运行时,所有类的实例都由类对象生产,类对象会把实例的isa地值修改成自己的地址,每个实例的isa都指向该实例的类对象, 从类对象里可以知道父类信息.可以响应的方…
//------------------------Persion类----------------------------// 1 #import "Person.h" @implementation Person + (void)test { NSLog(@"调用了test方法"); } // 当程序启动的时候,就会加载一次项目中所有的类.类加载完毕后就会调用+load方法 + (void)load { NSLog(@"Person---load&qu…
Student.h // @interface代表声明一个类 // : 代表继承 @interface Student : NSObject { // 成员变量要定义在下面的大括号中{} int age; int no; } // 在这里声明的所有方法都是公共 // age的get方法 // - 代表动态方法 + 代表静态方法 - (int)age; // age的set方法 - (void)setAge:(int)newAge; // no的get方法 - (int)no; - (void)s…
NSString *className = self.classNames[indexPath.section][indexPath.row];    BaseMapViewController *subViewController = [[NSClassFromString(className) alloc] init];…
+(void)load 方法 不需要主动调用,类加载时会走这个方法…
一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那么再用Swift开发时遇到一些问题不可避免,下面就来解决几个常遇到的问题. 二.问题和解决办法 如何在Swift中手动桥接OC? 1.创建swift桥接文件   2.设置桥接文件路径,也即Objective-C Bridging Header的路径,设置完就可以导入自定义的OC类文件使用了 如何使用…
都是注释哈 类的组成: C语言中函数分为声明和实现 OC中定义一个类也分为声明和实现, 也就是说以后我们在OC中定义类, 就是在写类的声明和实现 编写类的声明和实现: 声明 .h: /*  行为方法:      OC中的行为和C语言中的函数一样, 都是用来保存一段特定功能的代码      C语言中定义一个函数, 分为声明和实现, 声明写在.h中, 实现写在.c中      OC中定义一个方法, 也分为声明和实现, 声明写在@interface中, 实现写在@implementation    …
阅读此文章前,您已经有一定的Object-C语法基础了!) 2014年,Apple推出了Swift,最近开始应用到实际的项目中. 首先我发现在编写Swift代码的时候,经常会遇到Xcode不能提示,卡顿,直接闪退等问题,尤其是在Swift和OC混编时.(不知道其他开发者是否也有这样的经历,但是我相信这样的问题,很快会得到解决) 然后感觉Swift并不像网上很多朋友说的那样简单.有很多细节问题是值得注意的,甚至有很多思路是颠覆了传统的开发语言的!又有很多特性是结合了其他编程语言的优点! Swift…
OC分类(类目/类别) 和 类扩展 - 全解析   具体见: oschina -> MyDemo -> 011.FoundationLog-OC分类剖析 http://blog.csdn.net/u013378438/article/details/44491703     关于OC分类,非常重要的知识点:   >>分类能够对实例方法,类方法进行扩展,但不能够添加类的属性及实例变量. >>分类能够像类本身一样,调用self来访问类的方法,属性. 但对于通过新建.h与.m…
类定义 1 OC类分为2个文件,一个是.h文件,一个是.m文件: 2 .h文件存放类.函数声明: 3 .m文件类的具体实现: 4 类声明使用关键字@interface.@end来声明: 5 类实现使用关键字@implementation.@end来实现: 创建/销毁OC对象 a 创建对象 Cat* cat = [Cat alloc]; b 初始化构造函数 [cat init]; c 销毁对象 [dog release];…
首先我遇到的问题是这样的: 我之前封装的OC类,我导入现在的swift工程中,然后建立桥接文件,在Swift的控制器中可以找到这个OC写的东西. 但是问题来了,当你使用cocoapods导入的OC三方类,swift里面却找不到这个头文件,很是吓JB扯淡的.遇到这些问题真的很少脑筋!还好通过查找资料解决了! 以下是解决方法,希望对大家有帮助 第一步:选择Target -> Build Settings 菜单 第二步:在All ->Search Paths下面找到 \”User Header Se…