2012-04-22 17 views

回答

2

iOS開發從未實際使用過.nib文件。它一直是.xibs。 NIB最初是NeXT Interface Builder的首字母縮寫。 iPhone開發最初使用了一種名爲Interface Builder的工具來創建用戶界面,並保存爲.xib格式。 Interface Builder最近(有點)被合併到XCode 4中,所以你可以在那裏建立你的.xib文件。

是的,.xib格式是一種人類可讀的XML格式,與版本控制系統(差異等)比使用.nibs更容易使用。

爲了傳統的目的,我想,這兩種格式的發音是相同的......「筆尖」。可能也是因爲以「x」開頭的單詞難以發音:)

+1

不,iPhone的***總是***有nib文件。正如OP所說,筆尖被編譯(或者說是扁平化)XIB文件。 – CodaFi 2012-04-22 05:51:14

+0

你不回答編譯器發佈的問題。你正在回答一個人發佈的問題..大概是一個開發人員。開發人員對iPhone的nib文件沒有實際可見性。它只有.xib文件,世界上有充分理由期望這是海報所問的。當有人在iOS上討論「從筆尖構建」的視圖時,它們絕對意味着它是從最初放在.xib文件中的用戶界面文檔實例化的。 – Nate 2012-04-22 06:35:23

+0

我只是說,聲明iOS ***「從不」***具有XIB文件是絕對錯誤的。 – CodaFi 2012-04-22 06:36:30

2

我完全不同意@Nate的回答。 IOS實際上有總是有nib文件,它們剛被隱藏。你會發現,當編譯器將一個XIB文件變平,以便它可以被應用程序檢索到時,它實際上會將它「轉換」爲一個.nib文件!如果你不相信我,試試這個:

NSLog(@"%@", [[NSBundle mainBundle]pathForResource:@"myxib" ofType:@"xib"]); 

它返回NULL,因爲它不存在!現在試試這個:

NSLog(@"%@", [[NSBundle mainBundle]pathForResource:@"myxib" ofType:@"nib"]); 

很酷,是吧?

所以以扭曲的方式說,XIB確實是一個筆尖是正確的。

+0

+1,正確答案 – tipycalFlow 2012-04-22 06:26:36

+0

這是一個頗爲人爲的例子,它錯過了海報問題中提供的上下文。沒有人在實際的程序中使用該代碼。在罕見的情況下,你通過編程訪問nib/xibs,你更有可能通過像 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil類似的東西來遇到它們 - 它不需要完全擴展(.xib或.nib)。 – Nate 2012-04-22 06:39:17

+0

啊對方。我正在開發一個允許編輯XIB的應用程序(這是我回答的唯一原因),所以它不像你想象的那麼難得,這本身就是遮蔽整個問題。從概念上講,它們是等同的。 – CodaFi 2012-04-22 06:41:21

相關問題