我只是想知道有沒有辦法將nib/xib文件轉換爲ojbective C代碼?我只是想找到相當於nib/xib文件的代碼(我試過nib2objc,看起來結果不是我之後的)。如何將nib/xib轉換爲目標C代碼?
其實我想編譯這個例子
http://developer.apple.com/iphone/library/samplecode/TableSearch/index.html
沒有筆尖/ XIB文件(我想這正好與原來相同),約做這個任何想法?
我只是想知道有沒有辦法將nib/xib文件轉換爲ojbective C代碼?我只是想找到相當於nib/xib文件的代碼(我試過nib2objc,看起來結果不是我之後的)。如何將nib/xib轉換爲目標C代碼?
其實我想編譯這個例子
http://developer.apple.com/iphone/library/samplecode/TableSearch/index.html
沒有筆尖/ XIB文件(我想這正好與原來相同),約做這個任何想法?
退房nib2objc:
nib2objc NIB文件(或XIB的)轉換成Objective-C代碼,包括每個實例的所有屬性,所記錄的構造函數調用,並且還認爲層次。
nib2objc yourfile.xib > code.m
謝謝,但我是iPhone開發新手。我如何使用這些代碼? – 2009-12-25 05:43:06
由nib2objc轉換的代碼不包含範圍按鈕(用於搜索欄)。 – 2009-12-25 05:49:32
如果您是iPhone新手,那麼您可能不應該試圖重新發明諺語。 – 2009-12-25 06:29:37
在一般情況下,我認爲答案是否定的。筆尖不是代碼;他們是序列化對象的檔案。所以你要問的是,「給定一個任意序列化對象的圖,我可以生成一些源代碼,可以在不使用序列化的情況下創建這樣一個圖嗎?」如果沒有在所有涉及的課程中爲這樣的過程提供特別的支持,我看不出你能做到什麼。
詢問你實際需要完成什麼而不是這種做這件事的具體方式可能會更有益。
我同意,不應該有任何理由不使用nib。但是,如果您開始一個新項目,您可以選擇在代碼中編寫所有視圖而不是使用IB,但是如果你已經有了XIB,沒有理由將它們轉換成代碼並丟棄它們...... – Jasarien 2009-12-25 18:50:53
如果你正在創建本地化的應用程序,那麼nib的使用有限,你可以使用它們進行佈局,但大部分如果你有特別複雜的筆尖有很多覆蓋視圖,它們變得不可能管理,因爲沒有辦法隱藏IB中的零件 在這些情況下,在IB中完成一些工作非常有用,然後放棄它。能夠將筆尖轉換爲代碼可節省大量工作。 – 2009-12-26 04:21:12
對於這裏所有'不應該有任何理由不使用nib/xib'類型的迴應,讓我舉一個具體的例子作爲對比。
[iPhone OS 3.1.3,3.2]
這是不使用xib/nib的情況。
Rebuttal: 1.較新的iPhone O S/iOS設備擁有比3G和第一代iPhone更多的內存,所以這個問題正在解決; 2.您提到的[UIImage imageNamed:]錯誤已在iPhone OS 3.0中更正,它只涉及iPhone OS 2.x版本。 Apple不再支持這一功能,支持iPhone OS 2.x的應用程序不再被允許在App Store中使用。 3.這是一個關於大圖像明顯的內存需求的問題,而不是關於NIB文件本身。 免責聲明:我是nib2objc的創建者,所以我的觀點是有偏見的,並且我儘可能使用適當的XIB/NIB。 – 2010-07-24 15:07:54
我認爲這樣做是有道理的,如果你只是想創建一個以編程方式創建的視圖的起點,這種方式並不容易或可能與Interface Builder有關。如果要將視圖層次結構捆綁到靜態庫中,以使其完全自包含,也很方便。理想情況下,儘可能使用筆尖。這將使國際化變得更容易。但是,您仍然可以使用字符串文件來支持國際化。
剛出於好奇,你爲什麼要這麼做?我已經完成了很多iPhone的開發工作,沒有NIB就沒有太多的理由去工作。一旦你習慣了Interface Builder,他們可以更快地開發這些東西...... – 2009-12-25 05:56:29
我需要在一些特殊情況下執行此操作。所以我需要的應用程序執行完全一樣沒有NIB。對此有何想法? – 2009-12-25 06:09:59
是否有NIB文件可能不可用的情況?你可以在運行時使用NSBundle的loadNibNamed:owner:options:來手動反序列化一個NIB,所以即使你有一個加載界面的時髦非傳統方法,仍然可以在視圖中讀取。 – 2009-12-25 06:54:23