Objective-C再学习之NSObject对象(六)

本文探讨了Objective-C中的NSObject类,它是许多类的根类,提供与运行时系统的基础接口。通过继承NSObject,我们可以创建具备Objective-C对象行为的自定义类。通过实例,演示了如何创建一个以NSObject为父类的新类MyClass及其接口定义。
摘要由CSDN通过智能技术生成

首先我们看一段Apple给出的定义:NSObject is the root class of most Objective-C class hierarchies. Through NSObject, objects inherit a basic interface to the runtime system and the ability to behave as Objective-C objects.

可以看到NSObject是大多数Objective-C类的根类,它没有父类。通过NSObject,我们可以定义一些Objective-C接口,来获得我们所需的对象的功能。

1、首先新建一个工程

2、再在新的工程里新建一个类,并保证这个类的父类是NSObject。举例此类的名称为MyClass。

3、打开父类的声明文件MyClass.h,编写如下的代码:

#import <Foundation/Foundation.h>

@interface MyClass : NSObject
{

    //成员变量
    NSString * mName;
    int mNumber;
}

//成员方法
- (id)Myinit;
-(void)setInfo:(NSString *) name: (int) number;
-(void)printInfo;

@end

-(id)init 这个方法 用于类的初始化创建,每一个类在创建的时候需要调用init方法,使用父类拿到self指针后,在这里可以做一些子类初始化的工作。

-(id)init 方法名称可以任意修改,但是alloc的时候需要写入修改后的名称,这里我们写成 -(id) MyInit

-(void)setInfo 方法 用于参数的传递

-(void)printInfo 方法 输出成员变量内容

4、打开MyClass.m文件,在对应的位置编写如下代码:
#import "MyClass.h"

@implementation MyClass

- (id)Myinit
{
    self = [super init];
    if (self) {
        // 在这里进行初始化的工作
        [self setInfo: @"Evolution":2012];
    }

    return self;
}

-(void)setInfo:(NSString *) name: (int) number
{
    //参数的传递赋值
    mName = name;
    mNumber = number;
}

-(void)printInfo{

    //输出log信息
    NSLog(@"我的名字: %@",mName);
    NSLog(@"我的编号: %d",mNumber);
}

@end

OK,这样自定义的类就完成了,但这只是一个基本的应用,在实际的项目中可能还需要在自定义的类中编写代理等等方法。

5、完成上面的代码后,我们就需要在项目中使用这个类了。首先打开我们的Controller.h文件,引入MyClass.h文件,并声明一个该类的实例对象。
#import <UIKit/UIKit.h>
#import "MyClass.h"

@interface HelloWorldViewController : UIViewController
{

    MyClass *myClass;
}
@end

6、完成后,打开Controller.m文件,在-(void)viewDidLoad方法中,使用我们类中定义的方法,当让也可以在其他的方法中调用。
- (void)viewDidLoad
{
    [super viewDidLoad];

    //创建对象
    myClass = [[MyClass alloc] Myinit];
    //调用对象方法
    [myClass printInfo]; 

}

7、完成后,command+B 编译,若无错误,command+R  build And run。我们就可以在debugLog显示上面的信息了。

注:代码未经实际编译,若有错误,请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值