美文网首页
OC语言day05-10-1@class

OC语言day05-10-1@class

作者: liyuhong165 | 来源:发表于2016-06-13 00:09 被阅读42次

pragma mark @class

pragma mark 概念

/**
 *  @class 可以提升编译效率
 作用是
 可以简单的引用一个类
 
 简单实用
 @class Dog(类名)
 仅仅告诉编译器:Dog是一个类,并不会包含Dog这个类的所有内容
 
 具体使用
 在.h文件中实用@class引用一个类
 在.m文件中使用#import包含这个类的.h文件
 
 总结:
 1.如果都在.h中import,假如A拷贝了B,B拷贝了C,如果C被修改了,那么B和A都需要重新拷贝,因为C修改了那么B就会重新拷贝,二B重新拷贝了之后相当于B也被拷贝了,那么也就是说如果都在.h拷贝,只要有间接关系都会重新拷贝
 
 2.如果在.h中用@class,在.m用import,那么如果一个文件发生了变化,只有和这个文件有直接关系的那个文件才会重新拷贝
 
 3. 所以在.h用@class可以提升编译效率
 
 
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类

#pragma mark main函数
int main(int argc, const char * argv[])
{
    
    return 0;
}

Person.h //人类
#import <Foundation/Foundation.h>
//#import "Car.h"
/*
 #import "Car.h"
 相当于
 #import <Foundation/Foundation.h>
 
 @interface Car : NSObject
 
 @end
 */
// 由于import是一个预编译指令,他会将""中的文件拷贝到所在的位置 \
    并且import有一个特点,只要""中的文件发生了变化,那么import就会重新拷贝一次(更新操作)

@class Car;
// @class 仅仅是告诉编译器,@class后面的名称是一个类,不会做任何拷贝操作
// 注意:由于@class仅仅是告诉编译器后面的名称是一个类,所以编译器并不知道这个类中有哪些属性和方法,所以在.m中使用这个类时需要import这个类,才能使用
@interface Person : NSObject

@property (nonatomic,retain) Car *car;

@end
Person.m
#import "Person.h"
#import "Car.h"
@implementation Person


@end

Car.h //车类
#import <Foundation/Foundation.h>
//#import "Wheel.h"
@class Wheel;
@interface Car : NSObject

@property(nonatomic, retain)Wheel *wheel;   // 轮子

@end
Car.m
#import "Car.h"
#import "Wheel.h" // 必须要import 要不然不知道_wheel 不知道有哪些方法

@implementation Car
-(void)dealloc
{
    [_wheel release];
    [super dealloc];
}
@end

Wheel.h //轮子类
#import <Foundation/Foundation.h>

@interface Wheel : NSObject

@property (nonatomic,assign)int size;

@end
Wheel.m
#import "Wheel.h"

@implementation Wheel

@end

相关文章

  • OC语言day05-10-1@class

    pragma mark @class pragma mark 概念 pragma mark 代码 Person.h...

  • 总结:八天学会OC语言(上)

    day1 OC语言day01-01OC的简介(附C语言知识点回顾)OC语言day01-02C和OC的对比OC语言d...

  • 编写高质量iOS与OS X代码的52个有效方法(一)

    这本书没有OC语言的基础知识,讲的是如何高效运用这门语言 第一章 熟悉OC 1、什么是OC ·OC是为C语言添加了...

  • iOS 开发之八天学会 OC 语言

    八天学会 OC 语言(上)八天学会 OC 语言(下)

  • Objective-C概述

    OC概述 • Objective-C简称OC,OC是C语言的扩充,并且OC是iOS和OS X操作系统的编程语言...

  • 面试题之 OC

    OC语言的特性? ①OC 语言是 C 语言的一个超集,在 C 的基础上添加了面向对象的特性;②OC 语言与 Jav...

  • OC对象 学习

    前言 对象是OC的基本单元,由于OC语言的特殊型,所以OC语言的对象或许会有和其他语言不一样的地方,今天来看看OC...

  • 我理解的runtime

    OC Runtime 对OC的理解与特性 OC是一门面向对象语言,既有静态语言的特性(C++),又有动态语言的特性...

  • 面向对象基本语法

    OC完全兼容C(.m)语言,可以在oc语言中混入c(.c)语言代码甚至是c++(.mm)代码。 oc关键字:基本上...

  • OC—面向对象

    1.OC: Object- C ,面向对象的语言 2、OC和C的区别 <1> oc是 c的超集 ,oc是在c语言的...

网友评论

      本文标题:OC语言day05-10-1@class

      本文链接:https://www.haomeiwen.com/subject/fxcydttx.html