OC中类别的小结

//类别的作用:在已有的类中添加方法

Demo:新建文件在NSString类中添加一个打印自身的方法, 直接在main文件中声明和实现NSArray打印自身的方法

//
//  main.m
//  类别
//
//  Created by Macro on 14-12-7.
//  Copyright (c) 2014年 Macro. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "NSString+SelfPrint.h"

// 类别只使用在本文件中,则无需interface
@interface NSArray (show)

- (void)show;

@end

@implementation NSArray (show)

- (void) show
{
    for (id obj in self) {
        NSLog(@"%@", obj);
    }
}

@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        [@"Hello" selfPrint];

        NSMutableString *str = [[NSMutableString alloc] initWithString:@"HelloWorld"];
        [str selfPrint];
        [[str reversal] selfPrint];
        [str release];
        [@[@"中国", @"中华"] show];
    }

    return 0;
}
//
//  NSString+SelfPrint.h
//  类别
//
//  Created by Macro on 14-12-7.
//  Copyright (c) 2014年 Macro. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (SelfPrint)
//这是类别  在类别中声明方法,就如同声明在原类中
//当前类是NNString
//类别中不能声明成员变量

- (void) selfPrint;

- (NSString *)reversal;

@end
//
//  NSString+SelfPrint.m
//  类别
//
//  Created by Macro on 14-12-7.
//  Copyright (c) 2014年 Macro. All rights reserved.
//

#import "NSString+SelfPrint.h"

@implementation NSString (SelfPrint)

- (void) selfPrint
{
    //类别中的对象方法,一样可以使用原类的成员变量
    //不能使用声明在.m文件中的变量
    NSLog(@"%@", self);
}

- (NSString *)reversal
{
    NSMutableString * str = [[NSMutableString alloc] init];
    for (NSInteger i = [self length] - 1; i >= 0; i--) {
        [str appendFormat:@"%C", [self characterAtIndex:i]];
    }
    return [str autorelease];
}

@end
时间: 2024-08-28 22:49:07

OC中类别的小结的相关文章

我是黑马-----OC中类的声明、创建、调用

OC中类的定义分为两部分: 1)累的声明(规定当前类的:类名.属性.行为) 1 @interface 类名:父类名 2 3 { 4 5 //定义类的属性 6 } 7 8 //类的方法 9 10 @end 2)类的实现: 1 @implementation 类名 2 3 //方法的实现 4 5 @end 方法的声明格式: 方法的调用: 使用对象的调用方法就是OC的消息机制 OC语言中采用特定的语言调用类或者实例(对象)的方法称为消息发送或方法调用. OC中方法调用种: [类名或者对象名 方法名];

OC基础--OC中类的定义

OC中类的定义与使用跟C#和java差别相当明显,做个笔记,牢记并加以区别! 一.OC中类的定义:关键字@implementation 和 @end 注意事项: 1.定义好一个类之后,要让这个类继承NSObject这个类--是为了让自己定义的类能够具备创造对象的能力 2.继承NSObject后还不算完,NSObject的声明在Foundation框架中,所以--#import <Foundation/Foundation.h> 3.OC中定义的类中,类的属性和方法是分开写的--类的属性定义在“

Objective-C基础1:OC中类的继承和组合

1.类的定义和声明 OC中的类声明是以@interface开始@end结束. OC中的类定义以@implementation开始@end结束. OC中的方法声明: - (void) setName : (NSString*) strName;前面的短线-表示这是一个方法,(void)表示返回值, setName表示方法名称,(NSString*) StrName表示参数是NSString*类型,名称是strName,注意:()一定要加 OC中的成员变量定义在类声明的{}中,这一点跟方法声明不一样

OC学习阶段性小结

/*一.1.OC是一门面向对象的语言.扩展了标准C语言的类与接口.OC能完成的操作:定义新的类.类的实例和方法.方法调用(成为发消息).属性声明(以及通过他们自动合成存取方法).静态和动态类型化.块(block)已封装的 可在任何时候执行的多段代码.基本语言的扩展,例如协议和类别. 2.面向对象编程也叫做面向接口编程,简称:OOP(Object Oriented Programming). 3.类和对象是面向对象的核心. 4.类:具有相同特征和行为的事物的抽象. 5.面向对象的三大特征:封装.继

oc 内存管理小结(**输出才是最好的学习**)

引言 内存管理:清理(回收)不用的内存,以便内存能够再次利用. 这里就需要关注——怎样确定对象不再需要使用,并且其占用的内存可以被收回. 在Xcode4.2发布之前,oc内存管理全靠程序员自己,即手工管理内存计数. 在Xcode4.2版本之后,支持自动引用计数(Automatic Reference Counting,ARC),即摆脱手工管理,程序员从烦恼的内存管理问题中彻底解脱,oyeah~~ 但是,为了理解过去遗留的代码,还是需要了解手工管理内存的原理.并且,也可以帮助coder们更明智地决

OC基础--OC中类的声明与定义

OC中设计一个类的步骤: 一.声明类: 1.用到的关键字[email protected] 和 @end 2.类名 3.继承NSObject 4.属性 5.方法(行为,只需要声明) 二.实现(定义)类 1.用到的关键字[email protected] 和 @end 2.实现@interface中声明的方法 3.类中方法的声明和实现一定注意开头写减号“-” 4.OC类中的小括号不能乱用,小括号是用来括住类型的!--谨记! 例: 下面的代码中声明和定义的类,类中的方法没有返回值,没有参数 1 *

OC内存管理小结

初始化(alloc/init)的对象,需要释放,需要(release)释放它.如: NSMutableArray *aArray = [[NSArray alloc] init]; // 需要释放 [aArray release]; // retain或者copy 后 也要release 内存管理无外乎ARC和MRC两种方式,其中MRC需要程序员自己释放,是手动计数,ARC是自动计数,由系统释放,另外还有autorelease,它不是不释放,而是释放的较晚.

OC学习篇之---类的三大特性(封装,继承,多态)

之前的一片文章介绍了OC中类的初始化方法和点语法的使用:http://blog.csdn.net/jiangwei0910410003/article/details/41683873,今天来继续学习OC中的类的三大特性,我们在学习Java的时候都知道,类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一.封装 学习过Java中类的同学可能都知道了,封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java

oc深坑测试题及其答案

一.选择题(共80题,每题1分) 1. 不会立刻使引用计数器改变的是: 答案:(C) A.release B.alloc C.autorelease D.retain 2. 在OC中类的接口声明关键字为: 答案:(B) A.@import B.@interface C.@implemention D.@protocol 3. NSString *name = [[NSString alloc]initWithString:@"张三"];NSLog(@"%d",[na