黑马程序员学习笔记_OC之给NSString增加分类

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

黑马程序员学习笔记_OC之给NSString增加分类

1、 
目的:给某个类扩充一些方法,但不修改原来类的代码,不使用继承。

2、 
分为三个步骤:1>新建一个方法类

 

2>声明 @interface
类名(分类名称)

@end

3>实现 @implementation
类名(分类名称)

@eng

3、 
使用注意:1>分类只能增加方法不能增加成员变量

2>分类方法实现中可以访问原来类中声明的成员变量

3>分类可以重写原来类中的实现方法,但是会覆盖原来的方法,会导

致原来的方法不能再用,开发中一般不建议这样做。

4>方法调用优先级:分类(最后参与编译的分类优先)、原来类、父类

4、 
给NSString增加分类:给NSString增加一个类方法,计算某个字符串中阿拉伯数字个数。

1>    先建一个NSString的分类number

2>    声明:+
(int)numberCountOfString:(NSString *)str;

3>    方法实现:

(int)numberCountOfString:(NSString *)str;

{

intcount = 0;

for(inti = 0;i<str.length;i++)

{

unicharc = [str characterAtIndex : i];

if(c>=’0’&&c<=’9’)

{

count++;

}

}

return count;

}

主函数中的调用为:intcount = [NSString numberCountOfString:@”56g78nbc”];

5、 
给NSString增加分类:给NSString增加一个对象方法,计算某个字符串中阿拉伯数字个数。这种方法更简单。

同上面步骤一样,这里只写方法实现:

(int)numberCount

{

intcount = 0;

for(inti = 0;i<str.length;i++)

{

unicharc = [self characterAtIndex : i];

if(c>=’0’&&c<=’9’)

{

count++;

}

}

return count;

}

主函数调用:intcount = [@”56g78nbc” numberCount];

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://www.itheima.com" target="blank">www.itheima.com</a>

黑马程序员学习笔记_OC之给NSString增加分类,布布扣,bubuko.com

时间: 05-23

黑马程序员学习笔记_OC之给NSString增加分类的相关文章

黑马程序员学习笔记2014/7/5

观看视频:011_标识符_黑马程序员_Java基础视频.avi Java语言的基础组成 关键字.标识符.注释.常量和变量.运算符.语句.函数.数组.   关键字     标识符 1.在程序中自定义的一些名称 2.由26个英文字母大小写,数字,0-9符号 :_ $ 组成 3.定义合法标识符的规则: a.数字不可以开头 b.不可以使用关键字 4.Java中严格区分大小写 5.注意:在起名的时候尽量起一个有意义的名称       观看视频:012_常量_黑马程序员_Java基础视频 常量与变量 Jav

黑马程序员学习笔记--------C语言变量类型,结构体,枚举

本章学习的知识是定义结构体,枚举等自定义的数据类型,已经宏命令,变量类型等细小的知识点,在开始本章的新知识学习之前首先我们要明白的是C语言有丰富的数据类型和运算符,因此计算能力非常强大,计算过程中使用的值一般用变量来存储.变量也是有分类型的,不同类型的变量有不同的存储类型.不同的生命周期.不同的作用域,C语言也提供了一些关键字来设置变量的属性(比如设置存储类型.生命周期). 一.变量类型 变量分为全局变量和局部变量. 首先说明一下局部变量的特点 1> 定义:在函数内部定义的变量,称为局部变量.形

黑马程序员— OC核心语法之构造方法、Category分类、类的本质、description和SEL

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 上一章我们学习了OC的一些核心语法,初步了解了OC作为一门开发语言的一些较为深层次的知识.本章我们继续学习OC的核心语法,主要包括OC的构造方法,Category分类,类的本质及深入研究,以及description关键字和SEL关键字. 第一讲     构造方法 1. 构造方法 构造方法是用来初始化对象的方法,是一个对象方法,以减号"-"开头,构造方法其实就是init方法,初始化完毕

黑马程序员学习心得------C语言复杂数据类型之指针

众所周知,指针是C语言中最重要也是最难的一种数据类型,这是C语言中与其他类似于Java等语言不同的直接操纵内存的一种数据.也有人如此形容指针的重要性“如果你C语言中除了指针都学得很好,信手拈来,唯独不会指针,那么你就是没学过C语言!”.下面来回忆一下这段时间学习指针的心得. 1 定义的格式: 指向内容的数据类型  *指针变量名 例如: int  *p; 2 指针的赋值问题 int a=10; int *p=&a;//指针p指向的a的地址值 int *p; p=&a  //这两种赋值都可以.

黑马程序员-学习日记(多线程的初步认识)

 ------Java EE培训.Android培训.iOS培训.期待与您交流! ------- 进程:正在执行的应用程序.一个应用程序运行时内存分配的空间.线程:进程中一个程序执行的控制单元,一条执行路径.负责程序的执行顺序.多线程:在java虚拟机启动的时候会有一个java.exe的执行程序,即一个进程.该进程中至少有一个线程负责java程序的运行.而且这个线程运行的代码存在于main方法中. class Demo extends Thread { public void run() { f

黑马程序员-学习日记(多线程安全问题和死锁认识)

------Java培训.Android培训.iOS培训.期待与您交流! ------- 安全问题产生的原因: 当多条代码语句在操作同一个共享数据时,一个线程对多条语句只执行了一部分,还没有执行完, 另一个线程参与进来执行.导致共享数据的错误. class Mlpc implements Runnable { private int ticket = 50; public void run() { while(true) { if(ticket>0) { try { Thread.sleep(2

黑马程序员-学习日记(多线程间的通信)

 ------Java EE培训.Android培训.iOS培训.期待与您交流! ------- 示例: //将资源封装成对象 class Resour { String name; String gender; } //将线程执行的任务封装成对象 class Input implements Runnable { private Resour r; Input(Resour r) { this.r = r; } public void run() { int x =0; while(true)

黑马程序员-学习日记(多线程的安全)

安全产生的原因: 当多条语句在操作同一个共享数据时,一个线程对多条语句只执行了一部分,还没有执行完, 另一个线程参与进来执行.导致共享数据的错误. class Mlpc implements Runnable { private int ticket = 50; public void run() { while(true) { if(ticket>0) { try { Thread.sleep(20); //让线程进入冻结状态 } catch (Exception e) { } System.

黑马程序员-学习日记1(多线程的初步认识)

class Mlpc extends Thread //第一步.定义类继承Thread类 { private int ticket = 20; public void run() //第二步.覆写run方法,把需要被现场运行的代码都写在其中 { while(true) { if(ticket>0) { System.out.println(Thread.currentThread()+" "+ticket); } } } } class mlpcDemo { public sta