2012-12-01 223 views
3

我想知道從XML文件到Nib文件在Objective-C中的轉換,我的要求通常是編譯後的Xib文件,它將轉換爲NIB文件(二進制數據格式),現在我想給一個外部的Xml文件到我的項目我想將該文件轉換爲Nib文件。這可能嗎?給我建議(這意味着用XML文件替換Xib文件)。將XML文件轉換爲Nib文件?

+3

XIBs的擴展,並且非常複雜,一個plist中的版本。爲了獲得您需要的可接受的「起點」,您應該創建一個空的筆尖,然後在textedit中打開它,或者在Xcode中打開它以查看它實際上正在寫入的內容。 – CodaFi

+0

這是可能的通過使用XML? – Balu

+1

不是你見過的XML。 XIB幾乎就像對象圖,這意味着它們的外觀和行爲更像plists,但是,如果您擁有正確的頂級標記,則可以成功地將XML文件重命名爲XIB。編譯它是另一回事。 – CodaFi

回答

0

這裏我列出了普通iPad xib配置的細節,它是plist的形式。

<?xml version="1.0" encoding="UTF-8"?> 
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00"> 
    <data> 
     <int key="IBDocument.SystemTarget">1536</int> 
     <string key="IBDocument.SystemVersion">12A206j</string> 
     <string key="IBDocument.InterfaceBuilderVersion">2519</string> 
     <string key="IBDocument.AppKitVersion">1172.1</string> 
     <string key="IBDocument.HIToolboxVersion">613.00</string> 
     <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> 
      <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> 
      <string key="NS.object.0">1856</string> 
     </object> 
     <array key="IBDocument.IntegratedClassDependencies"> 
      <string>IBProxyObject</string> 
      <string>IBUIView</string> 
     </array> 
     <array key="IBDocument.PluginDependencies"> 
      <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> 
     </array> 
     <object class="NSMutableDictionary" key="IBDocument.Metadata"> 
      <string key="NS.key.0">PluginDependencyRecalculationVersion</string> 
      <integer value="1" key="NS.object.0"/> 
     </object> 
     <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> 
      <object class="IBProxyObject" id="841351856"> 
       <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> 
       <string key="targetRuntimeIdentifier">IBIPadFramework</string> 
      </object> 
      <object class="IBProxyObject" id="606714003"> 
       <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> 
       <string key="targetRuntimeIdentifier">IBIPadFramework</string> 
      </object> 
      <object class="IBUIView" id="766721923"> 
       <reference key="NSNextResponder"/> 
       <int key="NSvFlags">274</int> 
       <string key="NSFrame">{{0, 20}, {768, 1004}}</string> 
       <reference key="NSSuperview"/> 
       <reference key="NSWindow"/> 
       <object class="NSColor" key="IBUIBackgroundColor"> 
        <int key="NSColorSpace">3</int> 
        <bytes key="NSWhite">MQA</bytes> 
        <object class="NSColorSpace" key="NSCustomColorSpace"> 
         <int key="NSID">2</int> 
        </object> 
       </object> 
       <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"> 
        <int key="IBUIStatusBarStyle">2</int> 
       </object> 
       <string key="targetRuntimeIdentifier">IBIPadFramework</string> 
      </object> 
     </array> 
     <object class="IBObjectContainer" key="IBDocument.Objects"> 
      <array class="NSMutableArray" key="connectionRecords"> 
       <object class="IBConnectionRecord"> 
        <object class="IBCocoaTouchOutletConnection" key="connection"> 
         <string key="label">view</string> 
         <reference key="source" ref="841351856"/> 
         <reference key="destination" ref="766721923"/> 
        </object> 
        <int key="connectionID">3</int> 
       </object> 
      </array> 
      <object class="IBMutableOrderedSet" key="objectRecords"> 
       <array key="orderedObjects"> 
        <object class="IBObjectRecord"> 
         <int key="objectID">0</int> 
         <array key="object" id="0"/> 
         <reference key="children" ref="1000"/> 
         <nil key="parent"/> 
        </object> 
        <object class="IBObjectRecord"> 
         <int key="objectID">-1</int> 
         <reference key="object" ref="841351856"/> 
         <reference key="parent" ref="0"/> 
         <string key="objectName">File's Owner</string> 
        </object> 
        <object class="IBObjectRecord"> 
         <int key="objectID">-2</int> 
         <reference key="object" ref="606714003"/> 
         <reference key="parent" ref="0"/> 
        </object> 
        <object class="IBObjectRecord"> 
         <int key="objectID">2</int> 
         <reference key="object" ref="766721923"/> 
         <reference key="parent" ref="0"/> 
        </object> 
       </array> 
      </object> 
      <dictionary class="NSMutableDictionary" key="flattenedProperties"> 
       <string key="-1.CustomClassName">ViewController</string> 
       <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> 
       <string key="-2.CustomClassName">UIResponder</string> 
       <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> 
       <string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> 
      </dictionary> 
      <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/> 
      <nil key="activeLocalization"/> 
      <dictionary class="NSMutableDictionary" key="localizations"/> 
      <nil key="sourceID"/> 
      <int key="maxID">3</int> 
     </object> 
     <object class="IBClassDescriber" key="IBDocument.Classes"> 
      <array class="NSMutableArray" key="referencedPartialClassDescriptions"> 
       <object class="IBPartialClassDescription"> 
        <string key="className">ViewController</string> 
        <string key="superclassName">UIViewController</string> 
        <object class="IBClassDescriptionSource" key="sourceIdentifier"> 
         <string key="majorKey">IBProjectSource</string> 
         <string key="minorKey">./Classes/ViewController.h</string> 
        </object> 
       </object> 
      </array> 
     </object> 
     <int key="IBDocument.localizationMode">0</int> 
     <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string> 
     <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> 
     <int key="IBDocument.defaultPropertyAccessControl">3</int> 
     <bool key="IBDocument.UseAutolayout">YES</bool> 
     <string key="IBCocoaTouchPluginVersion">1856</string> 
    </data> 
</archive> 

但是沒有找到有關plist中元素的文檔。

我找到的一個解決方案是通過創建一個類似的XIB文件並使用它的plist來檢查。 試試這個,寫這個擴展名爲.xib的plist數據並加載該文件。

可能這個鏈接幫助ü,

here

感謝,

納文珊