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

Отличия блоков от обычных функций - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Перцептрон на objective c http://www.cyberforum.ru/objective-c/thread1297245.html
Добрый день! Я пытаюсь реализовать перцептрон на обжектив-С. Но столкнулся с проблеммой, когда через какое-то число эпох выход сети уходит в 1 или -1, а через эпоху 1-2 после этого все веса становятся NaN. Алгоритм вроде проверил ошибки не нашел, может кто-то увидит. Главный метод это learn код Neuron.h #import <Foundation/Foundation.h> @interface Neuron : NSObject <NSCoding> @property...
Objective-C Текст кнопки назад в навигационном контроллере При добавлении нового контроллера вида в навигационный контроллер в текст кнопки назад устанавливается заголовок предыдущего контроллера. Как это убрать? http://www.cyberforum.ru/objective-c/thread1295513.html
Готовые решения для безопасного хранения файлов для приложения Objective-C
Добрый день. Являюсь самым новым новичком в программировании на Objective-C, прошу совета. Для простейшего приложения, показывающего html и png файлы, нужно безопасное хранилище для этих данных с авторизацией. Ситуация возможно облегчается тем, что достаточно всего одной пары логин-пароль, ибо юзеров будет совсем мало (порядка 10 человек). Возможно ли решить такую задачу с помощью готовых...
AddSubview порядок отрисовки Objective-C
допустим у меня есть UIView в виде зеленого квадрата, еще один в виде красного прямоугольника и какой-нибудь UILabel и я назначаю им пересекающиеся фреймы. Далее для каждого прописываю: как это все отобразится? как наложится друг на друга? может быть есть какие-нибудь приоритеты?
Objective-C Где didMoveToSuperview в UITableViewController? http://www.cyberforum.ru/objective-c/thread1291346.html
мне в нескольких контроллерах вида нужен индикатор загрузки данных по центру экрана чтоб не настраивать его каждый раз, я сделал класс со всеми настройками @implementation NewsLoadingActivityIndicatorView - (id) init { self = ; self.backgroundColor = ; self.layer.cornerRadius = 5.0f;
Objective-C Как сделать свой шрифт в приложении? Возможно ли сделать свой шрифт в приложении? И как это сделать? Превыше благодарен. подробнее

Показать сообщение отдельно
Vorona
Peace 2 all shining faces
 Аватар для Vorona
661 / 523 / 44
Регистрация: 05.03.2010
Сообщений: 1,270
11.11.2014, 22:37     Отличия блоков от обычных функций
блоки в objective-c, грубо говоря, служат в качестве анонимных функций, лямбда выражений или замыканий
если знаете ruby, javascript или например python, то вы уже знаете что это

блоки можно присваивать переменным, передавать в функции и возвращать из функций
в более функциональных языках функции изначально являются функциями высшего порядка или функциями первого класса
В objective-c это немного затянуто и иначе реализовано, потому на помощь приходят блоки, вот и все

намного удобней написать вот так
Objective-C
1
2
3
4
5
6
[array enumerateObjectsUsingBlock:^(NSNumber *weight, NSUInteger idx, BOOL *stop) {
    if (idx == inputs.count) {
        *stop = YES;
        return;
    }
}];
нежели как-то так:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@interface MyClass <NSArrayEnumerator>
 
// . . .
 
- (void)myMethod
{
    [array enumerateObjectsWithDelegate:self]
}
 
// . . .
 
- (void)array:(NSArray *)array enumerateNextWithWeight:(NSNumber *)weight index:(NSUInteger)idx stop:(BOOL *)stop
{
    if (idx == inputs.count) {
        *stop = YES;
        return;
    }
}
Конечно, пример не из реальной жизни, но к сожалению очень часто именно так и происходит, и что еще хуже,
так то, что "старые фанаты" делегатов не понимают и не хотят учиться не хотят использовать блоки и пишут подобную ерунду
 
Текущее время: 02:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru