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

Экспресс строки - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C PUSH от вконтакте http://www.cyberforum.ru/objective-c/thread1189830.html
Есть такой трабл, сертификат push уведомлений для developmenta работает норм (тестил pushmybaby) все приходит. Пытаюсь его поставить как серт для push standalone-приложения для вконтакте, при написании сообщения (то есть получается при отправки уведомления) выдает ошибку вконтакте что типа "проблемы с вашим сертификатом", а если ставить production сертификат туда же, то ошибок не возникает, но и...
Objective-C Хранение WEAK объектов в массиве Иногда возникает ситуация хранить в массиве просто указатели на объекты, таким образом, чтобы счетчик их ссылок при таком хранении не увеличивался, и они удалялись самостоятельно. При самопроизвольном удалении естественно в массиве вместо объекта должен лежать nil. Итак класс который позволяет хранить вот такие weak ссылки. @interface @interface NSWeakObject : NSObject ... http://www.cyberforum.ru/objective-c/thread1188576.html
Objective-C Сохранение ID пользователя в iCloud
Доброго времени суток. Изучаю работу с iCloud. Есть вопрос, мне нужно сохранять в облако id пользователя который генерируется один раз, потом при повторном запуске приложения сначал проверяет есть ли id пользователя в облаке если есть он берет его оттуда, если нет он генерирует по новой его. Заранее спасибо за помощь Добавлено через 1 минуту Генерация происходит на устройстве. Я думал...
Программная прокрутка UISrollView Objective-C
Всем привет. Такая проблема, надо прокрутить программно UISrollView, пытаюсь использовать recttovisible , но почему то прокрутка не происходит... как правильно всё сделать?? спс
Objective-C BecomeFirstResponder http://www.cyberforum.ru/objective-c/thread1180743.html
Всем привет,возникла проблема с переносом текста-надо чтобы каждая следуйщая буква переносилась в новый ТекстФилд...пока текст филды делал через сториБоард - все работало,а как только переписал их программно - перестало переносить... -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ NSString *enteredText =...
Objective-C Приложение вылетает, сообщая о нехватке памяти Признаться, я долгое время искал решение своей проблемы сам и во многом ее решил, однако вылеты все же продолжаются... В итоге решил таки обратиться к сообществу братьев-программистов )) Итак, приложение над которым я работаю очень большое, приводить его тут не вижу смысла. В общих чертах: 1. Приложение как бы модульное, т.е. существует несколько ViewController'ов (модулей), которые сменяют... подробнее

Показать сообщение отдельно
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
06.08.2014, 15:40  [ТС]     Экспресс строки
Небольшие изменения

1) убран статический класс, объявлена статическая переменная
2) добавлен макрос для объявления ключей словарей перед циклами

таким образом при каждой итерации в цикле строка не создается заново что экономит ресурсы

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
#import <Foundation/Foundation.h>
 
#pragma GCC diagnostic ignored "-Wundeclared-selector" // << отключение предупреждений
 
#ifndef m_strformat
 
extern NSString * const k_EmptyString;
 
// форматированная строка
 
#define m_strformat(str, ...) [NSString stringWithFormat:str, ## __VA_ARGS__ ]
 
// склеивание строк через запятую
 
#define m_str(...) [[NSArray arrayWithObjects: k_EmptyString, ## __VA_ARGS__ , nil] componentsJoinedByString: k_EmptyString]
 
// объявление строк для циклов (в конец имени всегда добавлять лишний символ)
// значение соотвествует имени переменной
 
#define varSTR(str) NSString * str = NSStringFromSelector(@selector(str)); str = [str substringToIndex:str.length-1]
 
// для совместимости со строками которые содержат пробелы и прочий невозможно-объявлемый мусор
 
#define varSTRV(str,value) NSString * str = value
 
#endif
пример использования макроса для объявления ключей словарей перед циклами

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    
    // получаем данные
    
    NSData * data = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"01.json" ofType:nil]];
    
    NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:0 error:0];
    
    // цикл
    
    varSTR(id_);
    varSTR(title_);
    varSTR(regions_);
    
    varSTRV(format1, @"str1: %@");
    varSTRV(format2, @"str2: %@");
    
    for (NSDictionary * item in json[regions_]) {
        NSLog(format1, item[id_]);
        NSLog(format2, item[title_]);
    }
ответ консоли

2014-08-06 15:20:06.248 test_macro_string[1316:90b] str1: 444
2014-08-06 15:20:06.250 test_macro_string[1316:90b] str2: Астана
2014-08-06 15:20:06.250 test_macro_string[1316:90b] str1: 683
2014-08-06 15:20:06.251 test_macro_string[1316:90b] str2: Барнаул
2014-08-06 15:20:06.251 test_macro_string[1316:90b] str1: 594
2014-08-06 15:20:06.251 test_macro_string[1316:90b] str2: Белгород
2014-08-06 15:20:06.252 test_macro_string[1316:90b] str1: 140
2014-08-06 15:20:06.252 test_macro_string[1316:90b] str2: Владивосток

...
Исходник json
Javascript
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
{"regions":[
            {
            "id":444,
            "title":"Астана"
            },
            {
            "id":683,
            "title":"Барнаул"
            },
            {
            "id":594,
            "title":"Белгород"
            },
            {
            "id":140,
            "title":"Владивосток"
            },
            {
            "id":446,
            "title":"Владимир"
            },
            {
            "id":109,
            "title":"Волгоград"
            }
]}
Вложения
Тип файла: zip test_macro_string2.zip (35.2 Кб, 1 просмотров)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru