Сохранение словаря с NSAttributed String в PList или в NSUserDefaults - PullRequest
0 голосов
/ 19 октября 2011

У меня есть словарь с NSAttributtedString

{
    9 =     {
        9x0 =         {
            UserID = 123;
            formattedMessage = "Hi... How are you ?{\n    CTForegroundColor = \"<CGColor 0x601e460> [<CGColorSpace 0x6010020> (kCGColorSpaceDeviceGray)] ( 0 1 )\";\n    NSFont = \"CTFont <name: Cochin-BoldItalic, size: 17.000000, matrix: 0x0>\\nCTFontDescriptor <attributes: <CFBasicHash 0x6070640 [0x11f8400]>{type = mutable dict, count = 1,\\nentries =>\\n\\t1 : <CFString 0xf4d5c4 [0x11f8400]>{contents = \\\"NSFontNameAttribute\\\"} = <CFString 0x60707f0 [0x11f8400]>{contents = \\\"Cochin-BoldItalic\\\"}\\n}\\n>\";\n}";
            isDeleted = 0;
            isEdited = 0;
            lastModifiedDate = "2011-10-19 17:27:38 +0000";
            message = "Hi... How are you ?";
        };
    };
}

Я попытался сохранить этот словарь как Plist в папке «Документы», а также сохранить словарь в NSUserDefaults.Ничего из этого не сработало.Оба метода работают, если приписанная строка в словаре удалена.

Код, используемый для сохранения в Plist в папке Documents:

NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *aFilePath = [NSString stringWithFormat:@"%@/ChatHistory.plist",aDocumentsDirectory];
BOOL aStatus = [aDictionary writeToFile:aFilePath atomically:YES];

Код, используемый для сохранения словаря в NSUserDefaults:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:aDictionary forKey:@"ChatHistory"];

Кто-нибудь, пожалуйста, помогите.Я что-то упустил?

1 Ответ

0 голосов
/ 20 октября 2011

Интересная реализация.Думаю, это решение:

https://devforums.apple.com/message/340283#340283

исследует это сейчас ..

...