成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS中@class和 #import,兩種方式的討論

移動(dòng)開發(fā) iOS
我建議還是養(yǎng)成良好的import習(xí)慣,不要偷懶都把import放在h文件中,無論參與的項(xiàng)目大小,養(yǎng)成良好的編程習(xí)慣非常重要。

很多剛開始學(xué)習(xí)iOS開發(fā)的同學(xué)可能在看別人的代碼的時(shí)候會(huì)發(fā)現(xiàn)有部分#import操作寫在m文件中,而h文件僅僅使用@class進(jìn)行聲明,不禁納悶起來,為什么不直接把#import放到h文件中呢?

這是因?yàn)閔文件在修改后,所有import該h文件的所有文件必須重 新build,因此,如果把#import寫在h文件中,import該h文件的文件也就會(huì)產(chǎn)生不必要的編譯,增加編譯時(shí)間,特別是在項(xiàng)目文件多的情況 下。想象一下,如果只是修改一個(gè)h文件而導(dǎo)致上百個(gè)文件不必要的編譯,那是一件多么讓人糾結(jié)的事情。。。

對(duì)于@class只是告訴編譯器有這個(gè)class,請(qǐng)不要報(bào)錯(cuò)或警告,因此不會(huì)給編譯造成影響。

什么時(shí)候用@class這種方式聲明比#import好呢?

stackoverflow上的高手們給了不少建議:

Randy Marsh:

When I develop, I have only three things in mind that never cause me any problems.

  1. Import super classes
  2. Import parent classes (when you have children and parents)
  3. Import classes outside your project (like in frameworks and libraries)

For all other classes (subclasses and child classes in my project self), I declare them via forward-class.

 

Justin:

Simple answer: You #import or #include when there is a physical dependency. Otherwise, you use forward declarations (@class MONClass ,struct MONStruct , @protocol MONProtocol ).

Here are some common examples of physical dependence:

  • Any C or C++ value (a pointer or reference is not a physical dependency). If you have aCGPoint as an ivar or property, the compiler will need to see the declaration ofCGPoint .
  • Your superclass.
  • A method you use.

 

最后,我建議還是養(yǎng)成良好的import習(xí)慣,不要偷懶都把import放在h文件中,無論參與的項(xiàng)目大小,養(yǎng)成良好的編程習(xí)慣非常重要。

責(zé)任編輯:冰凝兒
相關(guān)推薦

2011-08-08 14:13:47

iPhone XML NSXMLParse

2011-03-03 10:26:04

Pureftpd

2010-03-16 15:23:32

java動(dòng)態(tài)載入

2020-02-21 17:33:17

SparkKafka數(shù)據(jù)

2021-05-27 10:57:01

TCP定時(shí)器網(wǎng)絡(luò)協(xié)議

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2010-08-06 09:38:11

Flex讀取XML

2023-03-29 13:06:36

2022-03-24 23:04:37

linux靜態(tài)庫動(dòng)態(tài)庫

2010-09-07 11:09:59

2010-07-27 15:03:37

Flex ArrayC

2010-05-10 18:19:00

負(fù)載平衡技術(shù)

2010-07-14 10:30:26

Perl多線程

2011-03-23 11:22:14

oracle dbli

2024-09-20 11:32:28

.NET內(nèi)存管理

2010-07-15 14:38:55

Perl eval函數(shù)

2010-08-03 13:27:04

FlexBuilder

2011-04-02 09:48:38

深拷貝

2016-11-07 09:02:02

Malloc內(nèi)存syscall
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美亚洲高清 | 中文字幕一区二区三区精彩视频 | 国产精品一码二码三码在线 | 欧美色成人| 午夜精品久久久久久久久久久久久 | 成人av电影免费在线观看 | 6996成人影院网在线播放 | 99久久日韩精品免费热麻豆美女 | 欧美视频免费 | 成人免费视频网站在线看 | 日韩视频一区二区 | 欧美一级在线免费 | 国产最新精品视频 | 久久久久无码国产精品一区 | 少妇无套高潮一二三区 | 欧美中文字幕在线观看 | 亚洲黄色在线免费观看 | 精品久久久久久久久久久下田 | 国产乱人伦精品一区二区 | 中文在线视频观看 | 国产成人网| 日本精品一区二区三区在线观看视频 | 欧美日韩精品一区二区天天拍 | 免费不卡视频 | 亚洲成人网在线 | 精品久久亚洲 | 男女羞羞视频在线观看 | 日韩精品一区二区三区免费视频 | 成人一区二区三区 | 九九免费 | 国产精品久久久久一区二区三区 | 国产一区二区三区精品久久久 | 一区二区三区四区在线播放 | 一区二区亚洲 | 视频一区二区在线观看 | 免费的av网站 | av手机在线免费观看 | 在线天堂免费中文字幕视频 | 一区二区三区免费 | 亚洲最新在线视频 | 久草新视频 |