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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Копирование объектов http://www.cyberforum.ru/objective-c/thread1144071.html
Добрый день! Обнаружил, что я не понимаю каких-то очень базовых вещей. Был бы очень рад, если бы мне подсказали :) Столкнулся с такой ситуацией, и не могу сам себе объяснить, почему происходит...
Objective-C Как сделать, чтобы текст букв изменялся как в караоке? Может ли кто-то подсказать: как сделать так, чтобы в текстовом окне, текст, который уже есть в окне, постепенно (побуквенно) изменял цвет по принципу караоке? http://www.cyberforum.ru/objective-c/thread1142946.html
Редактируемый массив определённого типа Objective-C
Как создать редактируемый массив типа SKShapeNode или int? Если например с BOOL, то делаю так: NSMutableArray *array = init]; И могу добавлять или править значения: ]; array = @NO; Но как...
Создать NSCollectionView программно Objective-C
Весь интернет перерыл, но так и не нашел примера использования NSCollectionView без байндингов и Array Controller. Может кто-то встречал? Направьте на истинный путь. На стэковерфлоу нашел что-то, но...
Objective-C @interface и @property http://www.cyberforum.ru/objective-c/thread1140139.html
Здравствуйте! Объясните пожалуйста, вот я накатал класс: @interface Good : NSObject { int c; } @property int a; @property int b; @property int _c;
Objective-C @property,@synthesize в Objective-C Может кто нибудь понятно объяснить, что на самом деле делает @property и зачем @synthesize. Читал wiki и другие сайты, но так и не понял. Почему это работает. // Counter.h #import... подробнее

Показать сообщение отдельно
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583

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

11.04.2014, 16:58. Просмотров 895. Ответов 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"
)
0
Вложения
Тип файла: zip test_ext_log.zip (33.2 Кб, 8 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru