您的位置:首页 > 职场人生

黑马程序员------OC基础语法的使用

2015-07-29 22:05 363 查看
  

 ——Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
——-

类的使用语法

在不改变原来类模型的前提下,给类扩充方法,除了可以利用继承特性设计一个子类外,还可以通过设置分类来完成。 

分类的格式:

分类的声明:
@interface 类名(分类名称)

......

@end

分类的实现:
@implementation 类名(分类名称)

......

@end

示例1:
#import <Foundation/Foundation.h>

@interface Person : NSObject   //类的申明

@property int age;

@property NSString *name;

@property double height;

- (void)run;

- (void)jump;

@end

@implementation Person  //类的实现

- (void)run

{

    NSLog(@"跑起来了");

}

- (void)jump

{

    NSLog(@"跳起来了");

}

@end

@interface Person (Liyi)  //声明Person的分类,取名为LiYi

- (void)shoot;//在分类中给Person扩充一个方法shoot

@end

@implementation Person(LiYi)  // 类的实现

- (void)shoot//实现这个扩充的方法

{

   NSLog(@"LiYi shoot");

}

@end

int main()

{

    Person *per = [Person new];//创建一个Person对象

    [per shoot];  //per调用分类中扩充的方法shoot

    return 0;

}

该实例运行的结构为    LiYi shoot

使用类的好处

1、可以将一个大的类分为多模块的开发

2、多模块的开发有利益团队开发,提高效率。

例如:

模块一:

#import <Foundation/Foundation.h>

#import "Grab.h"

@interface Person : NSObject<Grab>
@property(nonatomic, strong)NSString *name;

@property(nonatomic, assign)int age;
@property(nonatomic, assign)int height;

- (void)jump;
- (void)run;

@end

模块二:

#import <Foundation/Foundation.h>

#import "Person.h"

int main()       //  主函数的调用,分模块的调用

{

    id<Grab> obj = [Person new];

    [obj potholing];

    return 0;

}

模块三:

#import "Person.h"  //  声明的文件调用

@implementation Person  //类的实现

- (void)jump

{

    NSLog(@"跳跃");

}

- (void)run

{

    NSLog(@"奔跑");

}

- (void)potholing

{

    NSLog(@"开挖掘机挖坑");

}

@end

以上都是运用多分类模块,由主函数主类的调用

类的本质

其实类也是一个对象,是Class类型的对象,简称“类对象”。类就是以类对象的形式存储在内存中的。 

 
+load方法:在程序启动的时候会加载所有的类和分类,并自动调用所有类和分类的+load方法,先加载父类再加载子类也就是先调用父

类的+load方法再调用子类的+load方法。此外先加载原始类再加载子类。不管程序运行过程中有没有用到这个类,都会调用+load加

载。 
+initialize方法:在第一次使用某个类时(比如创建对象等),就会调用一次+initialize方法,一个类只会调用一次+initialize方

法,先调用父类的再调用子类的

获取类对象的方法:

方法1:

Class c = [Person class];

方法2:

Person *p = [Person new];  //  运用指针传地址

Class c = [p class];

简单的代码块的运用输出:

我们在打印输出某个类,通常会使用NSLog 函数来输出 和“%@”格式转换符,返回值一个整型,输出自己默认返回

#import <Foundation/Foundation.h>

int main()

{

    int a = 5, b = 9;

    int (^Sum)(int, int) = ^(int x, int y){

        return x + y;

    };

    int sum = Sum(a, b);

    NSLog(@"sum = %@", sum);

    return 0;

}

示例13展示了代码块的简单应用,运行结果是:

sum = 14
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: