OC語言day05-10-1@class

pragma mark @class

pragma mark 概念

/**
 *  @class 可以提升編譯效率
 作用是
 可以簡(jiǎn)單的引用一個(gè)類
 
 簡(jiǎn)單實(shí)用
 @class Dog(類名)
 僅僅告訴編譯器:Dog是一個(gè)類,并不會(huì)包含Dog這個(gè)類的所有內(nèi)容
 
 具體使用
 在.h文件中實(shí)用@class引用一個(gè)類
 在.m文件中使用#import包含這個(gè)類的.h文件
 
 總結(jié):
 1.如果都在.h中import,假如A拷貝了B,B拷貝了C,如果C被修改了,那么B和A都需要重新拷貝,因?yàn)镃修改了那么B就會(huì)重新拷貝,二B重新拷貝了之后相當(dāng)于B也被拷貝了,那么也就是說如果都在.h拷貝,只要有間接關(guān)系都會(huì)重新拷貝
 
 2.如果在.h中用@class,在.m用import,那么如果一個(gè)文件發(fā)生了變化,只有和這個(gè)文件有直接關(guān)系的那個(gè)文件才會(huì)重新拷貝
 
 3. 所以在.h用@class可以提升編譯效率
 
 
 */

pragma mark 代碼

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

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

Person.h //人類
#import <Foundation/Foundation.h>
//#import "Car.h"
/*
 #import "Car.h"
 相當(dāng)于
 #import <Foundation/Foundation.h>
 
 @interface Car : NSObject
 
 @end
 */
// 由于import是一個(gè)預(yù)編譯指令,他會(huì)將""中的文件拷貝到所在的位置 \
    并且import有一個(gè)特點(diǎn),只要""中的文件發(fā)生了變化,那么import就會(huì)重新拷貝一次(更新操作)

@class Car;
// @class 僅僅是告訴編譯器,@class后面的名稱是一個(gè)類,不會(huì)做任何拷貝操作
// 注意:由于@class僅僅是告訴編譯器后面的名稱是一個(gè)類,所以編譯器并不知道這個(gè)類中有哪些屬性和方法,所以在.m中使用這個(gè)類時(shí)需要import這個(gè)類,才能使用
@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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天看到一篇不錯(cuò)的文章關(guān)于OC內(nèi)存管理的,轉(zhuǎn)載一下與你共享概述我們知道在程序運(yùn)行過程中要?jiǎng)?chuàng)建大量的對(duì)象,和其他高級(jí)...
    niceSYT閱讀 518評(píng)論 0 2
  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件,我們平時(shí)使用的軟件中到處都可以看到它的影子,類似...
    liudhkk閱讀 9,306評(píng)論 3 38
  • 大綱 0.OC數(shù)據(jù)類型 1.聲明一個(gè)類 2.實(shí)現(xiàn)一個(gè)類 3.創(chuàng)建一個(gè)對(duì)象 4.對(duì)象的注意點(diǎn) 5.對(duì)象方法 6.類方...
    天天想念閱讀 1,201評(píng)論 0 3
  • 你對(duì)籃球一竅不通,起初抱著籃球滿場(chǎng)跑到籃下投籃,卻驚訝為何無人防守。他喜歡籃球,你開始百度籃球規(guī)則,知道有一種犯規(guī)...
    小圓sama閱讀 445評(píng)論 0 0
  • <1> “砰......”總編室里拍桌子的聲音傳來,今天已經(jīng)第三次了。新晉編輯米果垂喪著腦袋從里面走出來。 老油條...
    洛洛莉ya閱讀 1,583評(píng)論 10 31

友情鏈接更多精彩內(nèi)容