Xcode 4 вылетает при попытке добавить новый элемент в массив «Preference items» в комплекте настроек - PullRequest
4 голосов
/ 15 июня 2011

Я создал пакет настроек для своего приложения для iOS и попытался отредактировать файл Root.plist.

Я могу изменить некоторые из существующих значений (которые создаются по умолчанию), но если я пытаюсь добавить новый элемент (независимо от его типа), 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

Это содержимое root.plist, созданного самим Xcode:

<?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>

1 Ответ

3 голосов
/ 18 июня 2011

Звучит как ошибка Apple.Если вы скажете Xcode «Продолжить», а не «Сбои», вы сможете продолжать работать так, как будто ничего не пошло не так.Если ничего не помогает, вы можете использовать PlistBuddy или значения по умолчанию для манипулирования вашим списком.(Список свойств Editor.app был бы идеальным, но я не думаю, что он включен в установку Xcode 4.)

...