Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 默认值。检索不正确的值_Ios_Objective C_Nsuserdefaults - Fatal编程技术网

Ios 默认值。检索不正确的值

Ios 默认值。检索不正确的值,ios,objective-c,nsuserdefaults,Ios,Objective C,Nsuserdefaults,我用以下方式在NSUserDefaults中保存了一些词典: if ([[NSUserDefaults standardUserDefaults] objectForKey:@"event_states"] == nil) { NSDictionary *dict0 = [NSDictionary dictionaryWithObjectsAndKeys: @"923381DC-3DCB-46CA-A6CF-C5

我用以下方式在
NSUserDefaults
中保存了一些词典:

if ([[NSUserDefaults standardUserDefaults] objectForKey:@"event_states"] == nil)
    {
        NSDictionary *dict0 = [NSDictionary dictionaryWithObjectsAndKeys:
                              @"923381DC-3DCB-46CA-A6CF-C58A7AF33B89",@"guid", 
                              @"В планах",@"name", //this string will returned corrupted
                              [NSNumber numberWithInt:12632256],@"color",
                              [NSNumber numberWithInt:0],@"isclosed",
                              [NSNumber numberWithInt:0],@"isfinish",

                  nil];
// and few more dictionaries same way
        ....

        [[NSUserDefaults standardUserDefaults] setObject:@[dict0,dict1,dict2,dict3] forKey:@"event_states"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

    NSArray *event_states = [[NSUserDefaults standardUserDefaults] objectForKey:@"event_states"];
当我检索这些数据时,我正在记录它,并且有一种奇怪的行为。在某些情况下,我检索的是正确的值,如下所示:

name = "\U0412 \U043f\U043b\U0430\U043d\U0430\U0445" 
但在某些情况下:

name = "\U0412\U044b\U043f\U043e\U043b\U043d\U0435\U043d(\U043e)

括号中的最后一部分是一个额外的符号,我不明白它为什么出现,以及它何时出现和何时不出现的关系。这有什么问题?

我尝试将unicode转换为可读字符串,并将其粘贴到google translate中

\U0412 \U043f\U043b\U0430\U043d\U0430\U0445 => В планах => The plans
\U0412\U044b\U043f\U043e\U043b\U043d\U0435\U043d(\U043e) => Выполнен(о) => Complete ?

所以我认为发生这种情况是因为您的代码不是API。

您也正确地翻译了单词,但不知怎的,这个(o)符号出现在“完成”的末尾。您是对的,我是从服务器中以这种形式检索数据的。