2011-06-15 53 views
4

我爲iOS應用創建了一個設置包,並試圖編輯Root.plist文件。Xcode 4在嘗試將新項目添加到設置包中的「首選項」陣列時崩潰

我可以改變現有的一些價值觀(那些默認創建的),但如果我嘗試添加一個新的項目(不管類型)時,Xcode 4個崩潰,並顯示以下錯誤:

enter image description here

有人知道可能是什麼原因造成的嗎?

我正在使用Xcode 4.02 build 4A2002a。 這是日誌:

ASSERTION FAILURE in /SourceCache/DVTKit/DVTKit-221/Framework/Classes/PlistView/DVTPlistDictionaryNode.m:171 
Details: method -[DVTPlistDictionaryNode value] is inappropriate for instances of DVTPlistDictionaryNode 
Object: <DVTPlistDictionaryNode: 0x202442340> 
Method: -value 
Thread: <NSThread: 0x200020700>{name = (null), num = 1} 
Hints: None 
Backtrace: 
    0 0x0000000100949773 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in IDEKit) 
    1 0x000000010006d394 _DVTAssertionFailureHandler (in DVTFoundation) 
    2 0x00000001002ed3cb -[DVTPlistDictionaryNode value] (in DVTKit) 
    3 0x00000001002f0443 -[DVTPlistModel replacePlist:withPlist:] (in DVTKit) 
    4 0x00000001003030d4 -[DVTPlistViewController outlineView:setObjectValue:forTableColumn:byItem:] (in DVTKit) 
    5 0x00007fff8830e149 -[NSOutlineView _dataSourceSetValue:forColumn:row:] (in AppKit) 
    6 0x00007fff883c4dd9 -[NSTableView performClickOnCellAtColumn:row:] (in AppKit) 
    7 0x00007fff883c1200 -[NSTableView _attemptToPerformClickOnFocusedColumn] (in AppKit) 
    8 0x00007fff86bd511c __NSFireDelayedPerform (in Foundation) 
    9 0x00007fff867f5be8 __CFRunLoopRun (in CoreFoundation) 
10 0x00007fff867f3dbf CFRunLoopRunSpecific (in CoreFoundation) 
11 0x00007fff88f577ee RunCurrentEventLoopInMode (in HIToolbox) 
12 0x00007fff88f575f3 ReceiveNextEventCommon (in HIToolbox) 
13 0x00007fff88f574ac BlockUntilNextEventMatchingListInMode (in HIToolbox) 
14 0x00007fff87ec4e64 _DPSNextEvent (in AppKit) 
15 0x00007fff87ec47a9 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in AppKit) 
16 0x00007fff87e8a48b -[NSApplication run] (in AppKit) 
17 0x00007fff87e831a8 NSApplicationMain (in AppKit) 
18 0x0000000100000eec 
19 0x0000000000000002 

這是Xcode中自身產生的root.plist的內容:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>PreferenceSpecifiers</key> 
    <array> 
     <dict> 
      <key>Title</key> 
      <string>Group</string> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
     </dict> 
     <dict> 
      <key>AutocapitalizationType</key> 
      <string>None</string> 
      <key>AutocorrectionType</key> 
      <string>No</string> 
      <key>DefaultValue</key> 
      <string></string> 
      <key>IsSecure</key> 
      <false/> 
      <key>Key</key> 
      <string>name_preference</string> 
      <key>KeyboardType</key> 
      <string>Alphabet</string> 
      <key>Title</key> 
      <string>Name</string> 
      <key>Type</key> 
      <string>PSTextFieldSpecifier</string> 
     </dict> 
     <dict> 
      <key>DefaultValue</key> 
      <true/> 
      <key>Key</key> 
      <string>enabled_preference</string> 
      <key>Title</key> 
      <string>Enabled</string> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
     </dict> 
     <dict> 
      <key>DefaultValue</key> 
      <real>0.5</real> 
      <key>Key</key> 
      <string>slider_preference</string> 
      <key>MaximumValue</key> 
      <integer>1</integer> 
      <key>MaximumValueImage</key> 
      <string></string> 
      <key>MinimumValue</key> 
      <integer>0</integer> 
      <key>MinimumValueImage</key> 
      <string></string> 
      <key>Type</key> 
      <string>PSSliderSpecifier</string> 
     </dict> 
    </array> 
    <key>StringsTable</key> 
    <string>Root</string> 
</dict> 
</plist> 
+0

你的plist的根元素是什麼?它是一個字典(Xcode似乎期待)還是一個數組? – 2011-06-15 17:18:04

+0

這是一個數組(你可以在上面的圖片上看到它)。 plist是由Xcode本身創建的... – cfischer 2011-06-15 17:24:50

+0

我用文本編輯器檢查了root.plist,根元素是一個字典。你可以在下面看到它。順便說一句,這發生在所有項目上,而不僅僅是我的。 – cfischer 2011-06-15 18:17:57

回答

3

聽起來像一個蘋果的bug。如果您告訴Xcode繼續而不是崩潰,那麼您可以繼續工作,就好像沒有任何問題。如果一切都失敗了,你可以考慮使用PlistBuddy或默認操縱你的plist。 (Property List Editor.app會很理想,但我認爲它不包含在Xcode 4安裝中。)