Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Prorok2323
168 / 126 / 74
Регистрация: 04.12.2013
Сообщений: 550
#1

Референция в Objective-C

26.08.2014, 13:00. Просмотров 863. Ответов 9
Метки нет (Все метки)

Всем привет.

Многие, кто пишет на Java, знают, что там есть возможность передавать референцию на объекты между классами. Делегирование в общем. То есть что-то вроде:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Class Aaa {
 
   Bbb reference;
 
public Aaa (Bbb reference) {
  this.reference = reference;
}
 
Class Bbb {
 
   int a = 10;
 
}
 
public static void main (String[] args) {
    Bbb objectB = new Bbb();
    Aaa objectA = new Aaa(objectB);
    objectA.a = 14; //таким образом переменная "а" изменилась в объекте objectB
}
Вопрос: как реализовать подобное в Objective-C, если я например хочу в классе A изменить/получить/установить значение на слайдере, который объявлен в классе B? (iOS)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2014, 13:00
Ответы с готовыми решениями:

Перцептрон на objective c
Добрый день! Я пытаюсь реализовать перцептрон на обжектив-С. Но столкнулся с...

Objective-C и разработка
Стоит ли мне изучать Objective-C?Если да, то посоветуйте хорошую ГРАФИЧЕСКУЮ...

Консультации по objective-c
iOS-разработчик с опытом работы в крупной компании дает оперативные...

Полиморфизм в Objective-C
Всем привет! Без упоминания долгой предыстории, затронули с товарищем...

Строки в Objective-C
Помогите решить такую задачу: есть NSMutableString например с таким содержанием...

9
korvin_
2118 / 1611 / 311
Регистрация: 28.04.2012
Сообщений: 5,790
26.08.2014, 13:47 #2
Цитата Сообщение от Prorok2323 Посмотреть сообщение
референцию
Это так хитро обозвал ссылку?

Цитата Сообщение от Prorok2323 Посмотреть сообщение
Java
1
2
Aaa objectA = new Aaa(objectB);
objectA.a = 14; //таким образом переменная "а" изменилась в объекте objectB
Нет, таким образом мы получили ошибку компиляции.

А так, примерно так:
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
@class Aaa : NSObject {
    Bbb *reference;
}
 
@interface
 
- (id)initWithBbb:(Bbb *)reference;
 
...
 
@implementation
 
- (id)initWithBbb:(Bbb *)reference {
    if (self = [super init]) {
        self.reference = reference;
        return self;
    } else
        return nil;
}
 
...
 
int main(int argc, char *argv[]) {
    Bbb *objectB = [[Bbb alloc] init];
    Aaa *objectA = [[Aaa alloc] initWithBbb:objectB];
}
0
Prorok2323
168 / 126 / 74
Регистрация: 04.12.2013
Сообщений: 550
26.08.2014, 16:52  [ТС] #3
korvin_, ваш код понятен, но, я напомню, что main отсутствует.

Добавлено через 2 минуты
Ой, пардон, имел ввиду
Java
1
2
3
4
5
public static void main (String[] args) {
    Bbb objectB = new Bbb();
    Aaa objectA = new Aaa(objectB);
    objectA.reference.a = 14;
}
0
korvin_
2118 / 1611 / 311
Регистрация: 28.04.2012
Сообщений: 5,790
26.08.2014, 18:35 #4
Цитата Сообщение от Prorok2323 Посмотреть сообщение
я напомню, что main отсутствует.
Во-первых, не отсутствует, во-вторых, ну помести использование объектов туда, куда тебе надо.

Цитата Сообщение от Prorok2323 Посмотреть сообщение
Ой, пардон, имел ввиду
Objective-C
1
2
3
Bbb *objectB = [[Bbb alloc] init];
Aaa *objectA = [[Aaa alloc] initWithBbb:objectB];
objectA.reference.a = 14;
Добавлено через 2 минуты
А вообще обычно элементы интерфейса (слайдер в твоем случае) просто связывают в Xcode со свойством (@property) объекта, в котором располагается ссылка. В общем на ютубе легко найти видео с примером.

P.S. И делегирование тут вообще не при чем.
0
Prorok2323
168 / 126 / 74
Регистрация: 04.12.2013
Сообщений: 550
26.08.2014, 18:49  [ТС] #5
korvin_, привожу пример:
Слайдер расположен в главном меню и меняет размер шрифты текста где-то в какой-то UITableView странице. Как их связать?
0
dsdbonus
1 / 1 / 0
Регистрация: 25.08.2014
Сообщений: 10
26.08.2014, 19:20 #6
@property создай, а так вообще зажимаешь ctrl, перетаскиваешь слайдер в код, создаешь обработчик, так же делаешь для второго элемента только ссылку на него создаешь (можно если идентификатор есть в сцене, то его по другому найти), и в обработчике присваиваешь размер шрифта.
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
26.08.2014, 21:27 #7
Цитата Сообщение от Prorok2323 Посмотреть сообщение
Слайдер расположен в главном меню и меняет размер шрифты текста где-то в какой-то UITableView странице. Как их связать?
kvo тебе в помощь
0
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
27.08.2014, 07:54 #8
Цитата Сообщение от Prorok2323 Посмотреть сообщение
Слайдер расположен в главном меню и меняет размер шрифты текста где-то в какой-то UITableView странице. Как их связать?
MVC наше все. Что ваш слайдер, что TableView - это V. Напрямую они взаимодействовать не должны друг с другом. Размер шрифта в вашем случаем - это настройка, т.е. модель. "страницей" у вас должен управлять контроллер. То есть один контроллер должен прочитать значение со слайдера и положить его в модель, другой контроллер - прочитать из модели и сказать TableView: "выставь вот такой шрифт".
1
Prorok2323
168 / 126 / 74
Регистрация: 04.12.2013
Сообщений: 550
27.08.2014, 19:16  [ТС] #9
glvrzzz, есть примеры?
0
Prorok2323
168 / 126 / 74
Регистрация: 04.12.2013
Сообщений: 550
27.08.2014, 19:23  [ТС] #10
Вот что мне нужно.
Но такое соединение невозможно. Как это реализовать в коде?
0
Миниатюры
Референция в Objective-C  
27.08.2014, 19:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2014, 19:23

Наследование в Objective C
У меня есть класс CustomCell, в котором объявлен прототип функции initDataCell....

Скачать Objective-C
Здравствуйте, где можно скачать Objective-C ? В инете искал, чё-то не нашёл....

SystemWait в Objective C
Доброго времені суток. У меня вот какая проблема. Я роботаю с сервером в...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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