【iOS开发】关于objective-c中的类的总结

1》类的创建:

@interface Car:NSObject

{

//变量名

}

//方法声明

@end

@implementation Car

//方法的实现

@end

2》类的继承(oc中不支持多继承,可以通过其他特性达到多继承的效果, 例如『类别』catergory 和『协议』protocol)

@interface Circle:Car

@end

 2.1》继承后的方法调度问题:

当代码发送消息的时候,调用方法时会首先去自身里面找有没有这个方法,如果没有就会去他的父类里面找,知道NSObject类里面。如果还没有就会出现错误。

2.2》继承后实例变量的问题:

NSObject类中会声明一个isa实例变量,保存的是指向当前类的指针。所以每一个类都会拥有这个实例变量指向自身的类,所以子类拥有的实例变量就是自己的实例变量加上父类中的实例变量还有NSObject类中的isa实例变量。

2.3》继承后的重写方法问题:

重写方法有时候要改变父类中声明的实例变量,就需要使用super关键字调用父类中的方法了。

3》复合关系(就是将多个类组成一个类中使用)

1》description方法就如同java中的toString()方法,NSLog(@"%@")会默认调用description方法。

所以要打印一个对象可以重写他的description方法

4》构造方法

OC中类的构造方法就是init方法,重写init方法

- (id) init

{

if(slef =[super init])

{

、、、、、、

}

return self;

}

5》setter和getter方法

setter方法前面需要加set,而get方法不需要加get,只需要用变量名字就行。

继承之间是is-a的关系,复合之间是has-a的关系。

时间: 2024-07-31 14:26:46

【iOS开发】关于objective-c中的类的总结的相关文章

iOS开发(OC)中的命名规范

开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结构也算清晰,因为我一直以来都是代码看的多写的多,但是总结的比较少,知识经常不成体系.以后多花点时间把自己的经验和学习知识加以总结一下吧,这样有利于去指导新人,也更有利于加深自己的知识认知.今天就从代码规范入手总结一下iOS开发中好的编码规范吧.我们在开发中看别人的代码的时候经常会去抱怨至少内心里骂娘

iOS开发项目篇—21抽取工具类

iOS开发项目篇—21抽取工具类 一.抽取宏 把和应用相关的信息抽取出来 App Key:1972915028 App Secret:b255603c4dfd82b4785bf9a808ce2662 回调地址:http://www.cnblogs.com/wendingding/ (1)appkey和回调页面在很多地方都要用到 (2)如果是不同应用的话,只需要把这几个参数换掉就可以了.把它们抽取成一个宏,写到pch文件中. 项目的PCH文件 1 #import <Availability.h>

iOS开发拓展篇—xib中关于拖拽手势的潜在错误

iOS开发拓展篇—xib中关于拖拽手势的潜在错误 一.错误说明 自定义一个用来封装工具条的类 搭建xib,并添加一个拖拽的手势. 主控制器的代码:加载工具条 封装工具条以及手势拖拽的监听事件 此时运行程序,程序直接崩溃,报错如下: 说明:手势不会有superView方法,superView是UIView的方法,说明我们错误的把手势对象当成是UIView来用了. 调试查看出现问题的原因: 出现问题的原因: 说明:通过lastObject取出来的对象是手势,而不是xib,因此出现上面的错误. 把la

iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式

iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式 说明: 1)该文简短介绍在iOS开发中遍历字典.数组和集合的几种常见方式. 2)该文对应的代码可以在下面的地址获得:https://github.com/HanGangAndHanMeimei/Code 一.使用for循环 要遍历字典.数组或者是集合,for循环是最简单也用的比较多的方法,示例如下: 1 //普通的for循环遍历 2 -(void)iteratorWithFor 3 { 4 //////////处理数组/////

iOS开发之使用Runtime给Model类赋值

本篇博客算是给网络缓存打个基础吧,本篇博客先给出简单也是最容易使用的把字典转成实体类的方法,然后在给出如何使用Runtime来给Model实体类赋值.本篇博客会介绍一部分,主要是字典的key与Model的属性名相同时,使用Runtime来进行赋值,下篇博客会给出字典key的值和Model的名字不同时的解决方案,并给出使用Runtime打印实体类属性值的方式. 当然你可以使用KVC的setValuesForKeysWithDictionary:方法,下面的方法也是一种解决方案.如果使用setVal

ios开发数组排序(数组中包括字典)

iphone开发数组排序(数组中包括字典) 1.普通数组排序: NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"0",@"8",@"6",@"1",nil]; NSArray *sortedArray = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){ if ([obj

iOS开发之集成iOS9中的Core Spotlight Framework搜索App的内容

转载自:  http://www.cnblogs.com/ludashi/p/4867511.html Spotlight在iOS9上做了一些新的改进, 也就是开放了一些新的API, 通过Core Spotlight Framework你可以在你的app中集成Spotlight.集成Spotlight的App可以在Spotlight中搜索App的内容,并且通过内容打开相关页面.因为接到开发任务,老大说让在App中支持Spotlight, 于是又搞了搞苹果的官方文档.可以说,集成Spotlight

『iOS开发』「OC」02 - 类和对象

一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类和对象 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的划分中,一般

ios开发--网页中调用JS与JS注入

先将网页弄到iOS项目中: 网页内容如下, 仅供测试: [html] view plain copy <html> <head> <meta xmlns="http://www.w3.org/1999/xhtml" http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>这是一个示例html文件</title