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

Вызов блока с переменными параметрами - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Переход к корневому рут контроллеру с последущей сменой вкладки uitabbarcontroller http://www.cyberforum.ru/objective-c/thread1370181.html
как есть сейчас: UITabBarController *tbc; - (void)viewDidLoad { ; tbc = self.tabBarController; } -(void)someMethod{ ; tbc.selectedIndex = 1;
Objective-C Смена цвета status bar ребят, как поменять цвет текста статус бара на кастомный? текст на белый и черный умею менять, а вот на любой другой — никак. http://www.cyberforum.ru/objective-c/thread1369215.html
Программа клиент сервер Objective-C
Всем доброго времени суток. Сильно не ругайтесь и камнями не кидайтесь, я в программировании только разбираюсь. Купил пару книг по которым сейчас учусь, а именно Стивен Кочан - Программирование на...
Objective-C Проверка наличия ключа в NSDictionary
Здравствуйте. Подскажите как проверить есть ли в NSDictionary нужный мне ключ? Например есть массив словарей, но словари с разными ключами, мне нужно вывести только те словари у которых есть ключ...
Objective-C При нажатии координаты фрейма возвращаются в прежние http://www.cyberforum.ru/objective-c/thread1366261.html
Меняю положение какого-нибудь object.frame = CGRectMake(), все ок. НО как только я нажимаю на него, координаты сбрасываются, то есть фрейм возвращается в прежнее состояние. Как избежать этого?
Objective-C HTMLParser - ошибка памяти Делаю парсинг 9000 страниц, возникает ошибка: Parser(426,0xb0093000) malloc: *** mach_vm_map(size=8388608) failed (error code=3) *** error: can't allocate region *** set a breakpoint in... подробнее

Показать сообщение отдельно
dontgiveafk
36 / 16 / 0
Регистрация: 29.01.2010
Сообщений: 252

Вызов блока с переменными параметрами - Objective-C

19.02.2015, 11:37. Просмотров 637. Ответов 3
Метки (Все метки)

Странное дело. Есть функция/метод у объекта:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-(void) BlockCall:(void (^)(float a, float b, NSObject *object, NSObject *secObject, NSObject *thirdObject)) argBlock
                withObject: (NSObject *)object
                   andSObj:(NSObject *)sobject
                   andTObj:(NSObject *)tobject
{
 
    object = [[NSObject alloc] init];
    sobject = [[NSObject alloc] init];
    tobject = [[NSObject alloc] init];
    NSLog(@"First object:%@", object);
    NSLog(@"Second object:%@", sobject);
    NSLog(@"Third object:%@", tobject);
    argBlock(15 ,27, object, sobject, tobject);
}
И блок :
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
void (^voidBlock)(va_list args, ...);
  voidBlock= ^(va_list args, ...){
 
      va_list parsArgs;
      va_start(parsArgs, args);
 
        va_arg(parsArgs, double);
        va_arg(parsArgs, double);
        id NSObjectArg = va_arg(parsArgs, id);
        id NSObjectArg2 = va_arg(parsArgs, id);
        id NSObjectArg3 = va_arg(parsArgs, id);
     va_end(parsArgs); 
 }
Если я вызову эту функцию с корректными параметрами и передам ей блок в качестве параметра, то внутри блока он корректно прочитает два первых флота потом второй переданный объект он прочитает как первый NSObjectArg, третий прочитает как NSObjectArg2.
И так всегда он будет читать все примитивы до первого указателя, потом сожрет первый указатель и прочитает все остальные.
Если блок изменить и сделать его с фиксированными параметрами то все он нормально прочитает, но мне нужен именно блок с переменными параметрами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru