Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
#1

Вывод русских словарей и массивов в читаемом виде - Objective-C

11.04.2014, 16:58. Просмотров 882. Ответов 2
Метки нет (Все метки)

Вывод русских словарей и массивов в читаемом виде

ext_log.h

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//*
 расширенный вывод
 */
 
#import <Foundation/Foundation.h>
 
#ifndef __ext_log_H
#define __ext_log_H
 
// [url]http://stackoverflow.com/questions/2099349/using-objective-c-cocoa-to-unescape-unicode-characters-ie-u1234[/url]
void strDecodeUxxx(NSMutableString * str);
 
// вывод данных в консоль
void EXT_LOG(id obj);
 
#endif
ext_log.m

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
 расширенный вывод
 */
 
#import "ext_log.h"
 
void strDecodeUxxx(NSMutableString * str) {
    
    CFStringRef transform = CFSTR("Any-Hex/Java");
    [str setString: [str stringByReplacingOccurrencesOfString:@"\\U" withString:@"\\u"]];
    CFStringTransform((__bridge CFMutableStringRef)str, NULL, transform, YES);
    CFRelease(transform);
}
 
// вывод данных в консоль
void EXT_LOG(id obj) {
    
    if (!obj) {
        NSLog(@"OBJ IS NULL\n");
        return;
    }
    
    if ([obj isKindOfClass:[NSString class]]) {
        NSString *z = (NSString *) obj;
        NSLog(@"STR : %@ \n", z);
        return;
    }
    if ([obj isKindOfClass:[NSArray class]]) {
        int i = 0;
        NSArray *z = (NSArray *) obj;
        NSMutableString * s = [NSMutableString new];
        [s appendFormat:@"ARRAY : %d\n\n", z.count];
        for (id objd in z) {
            [s appendFormat: @"[%d] ->> %@\n", i, objd];
            i++;
        }
        strDecodeUxxx(s);
        NSLog(@"%@",s);
        return;
    }
    if ([obj isKindOfClass:[NSDictionary class]]) {
        NSDictionary*z = (NSDictionary*) obj;
        NSMutableString * s = [NSMutableString new];
        [s appendFormat:@"DICT : %d\n\n", z.count];
        for (id key in [z allKeys]) {
            [s appendFormat: @"[%@] ->> %@\n", key,[z objectForKey:key]];
        }
        strDecodeUxxx(s);
        NSLog(@"%@",s);
        return;
    }
    
    NSLog(@"OBJ : %@ \n", obj);
}
пример кода с использованием сабжа

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
- (IBAction)btn_action:(id)sender {
    
    NSDictionary * d = @{@"hello": @{@"привет": @"привет"}};
    
    EXT_LOG(d);
    NSLog(@"обычный вывод%@",d);
    
    NSArray * k = @[@"привет", @"привет", @"привет"];
    
    EXT_LOG(k);
    NSLog(@"обычный вывод%@",k);
}
вывод консоли

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2014-04-11 16:50:34.331 test_ext_log[1650:90b] DICT : 1
 
[hello] ->> {
    "привет" = "привет";
}
2014-04-11 16:50:34.332 test_ext_log[1650:90b] обычный вывод{
    hello =     {
        "\U043f\U0440\U0438\U0432\U0435\U0442" = "\U043f\U0440\U0438\U0432\U0435\U0442";
    };
}
2014-04-11 16:50:34.333 test_ext_log[1650:90b] ARRAY : 3
 
[0] ->> привет
[1] ->> привет
[2] ->> привет
2014-04-11 16:50:34.333 test_ext_log[1650:90b] обычный вывод(
    "\U043f\U0440\U0438\U0432\U0435\U0442",
    "\U043f\U0440\U0438\U0432\U0435\U0442",
    "\U043f\U0440\U0438\U0432\U0435\U0442"
)
Вложения
Тип файла: zip test_ext_log.zip (33.2 Кб, 8 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2014, 16:58     Вывод русских словарей и массивов в читаемом виде
Посмотрите здесь:
Objective-C Быстрое обращение к данным многомерных словарей
Вывод dbf файла в читаемом виде. Visual Basic
Visual Basic Даты в VB в читаемом виде.
Отображение времени в читаемом виде C++
C++ Отформатировать текст кода в читаемом виде
Записать формулы в виде, читаемом в Excel MS Excel
Python Как вывести строки в юникоде из кортежа в читаемом виде?
Delphi Рабочий пример json без каракулей и даты в читаемом виде
Delphi Подсчет заглавных русских букв в файле и вывод их в виде сообщения. Несоответствие типов
VBA Словарь словарей плюс Коллекция массивов
Free Pascal Реализовать в виде процедуры вывод динамических массивов
C++ Оформить программу в виде функций обработки массивов (ввод, заполнение, вывод, упорядочение и т.п.)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
667 / 529 / 45
Регистрация: 05.03.2010
Сообщений: 1,273
12.04.2014, 03:05     Вывод русских словарей и массивов в читаемом виде #2
сначала хотел спросить, чего не использовать localizations?
но зачем такое кому-то может понадобиться?

Не по теме:

это ж что-то вроде китайского пива...

noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
12.04.2014, 08:18  [ТС]     Вывод русских словарей и массивов в читаемом виде #3
чего не использовать localizations
localizations в NSLog ?
но зачем такое кому-то может понадобиться?
дебаг JSON словарей при разработке приложения, а точнее отображение в них интернационального содержимого, так как в обычном виде NSLog выводит \Uxxx последовательности вместо символов
Yandex
Объявления
12.04.2014, 08:18     Вывод русских словарей и массивов в читаемом виде
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru