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

Objective-C

Войти
Регистрация
Восстановить пароль
 
inpinp
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 1
#1

Циклические зависимости - Objective-C

10.06.2015, 07:17. Просмотров 608. Ответов 1
Метки нет (Все метки)

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
//// Parent.h
@class Child;
@interface Parent : NSObject
@property Child* child;
@end
//// Parent.m
#import "Parent.h"
#import "Child.h"
@implementation Parent
- (instancetype)init {
    self = [super init];
    if (self) {
        self.child = [Child new];
    }
    return self;
}
- (void)dealloc {
    NSLog(@"Parent dealloc");
}
@end
 
//// Child.h
@class Parent;
@interface Child : NSObject
@property Parent* parent;
@end
//// Child.m
#import "Child.h"
#import "Parent.h"
@implementation Child
- (instancetype)init {
    self = [super init];
    if (self) {
        self.parent = [Parent new];
    }
    return self;
}
- (void)dealloc {
    NSLog(@"Child dealloc");
}
@end

При инстанцировании Parent и Child получается переполнение стека, поскольку они начинают циклически создавать друг друга. Что можно здесь исправить? Задача на собеседовании, между прочим.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2015, 07:17     Циклические зависимости
Посмотрите здесь:

Можно ли создать матрицу используя условные и циклические операторы, которые позволяют задавать значения элементов матрицы в зависимости от остатка - MathCAD
можно ли создать матрицу используя условные и циклические операторы, которые позволяют задавать значения элементов матрицы в зависимости от...

Циклические - Pascal
Напечатать столбиком значения sin2,sin3...,sin20?

Циклические - Pascal
Составить программу для расчета факториала натурального числа n (Факториал числа n равен 1*2*...*n)?

Циклические - Pascal
Составить программу для расчета факториала натурального числа n (факториал числа n равен 1*2*...*n), составить программу по 3 циклам...

Циклические алгоритмы - VBA
Нужно срочно написать две проги с помощью ЦИКЛОВ.... 1) Hайти n членов последовательности x1 =x2 = x3 =1; xk =x(k-1) + x(k-3) где 1, 2,...

циклические сдвиги - C++
Как организовать циклический сдвиг числа? Например у меня есть число 5. В двоичной системе это выглядит как 0101, и мне нужно сделать так...

Циклические алгоритмы - C++
Здраствуйте, необходимо решить такую задачу:): Известны сведения о количестве осадков, выпавших за каждый день мая. Первого мая...

Циклические алгоритмы - Pascal
1.Определить, каким по счету идет в массиве К(12) первый элемент, равный 0. 2.Дана матрица Х(15,15). Вычислить сумму элементов,...

Циклические проэкты - Visual Basic
http://s016.***********/i336/1512/e9/e1a5d1f74d95.jpg в первом задании создать проэкт, чтобы он просчитал. ...

Циклические вычисления - C++
Можете сказать, где ошибка? #include <iostream> #include <iomanip> #include <math.h> using namespace std; int main() { ...

.NET 3.x Циклические ссылки - C# WPF
Есть вопрос. Я написал проект. Весьма большой. В некоторых местах при загрузке некоторых данных возникает задержка. Происходит это в тот...

С++ (циклические алгоритмы) - C++
Большая просьба помочь с кодом по задаче. Проста, но разбираться в этой теме времени не хватает, а результат срочно нужен. "В...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
10.06.2015, 08:50     Циклические зависимости #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//// Parent.h
@class Child;
@interface Parent : NSObject
@property Child* child;
@end
//// Parent.m
#import "Parent.h"
#import "Child.h"
@implementation Parent
- (instancetype)init {
    self = [super init];
    if (self) {
        self.child = [Child initWithParent:self];
    }
    return self;
}
- (void)dealloc {
    NSLog(@"Parent dealloc");
}
@end
 
//// Child.h
@class Parent;
@interface Child : NSObject
- (instancetype)initWithParent:(id)parent;
@property Parent* parent;
@end
//// Child.m
#import "Child.h"
#import "Parent.h"
@implementation Child
- (instancetype)initWithParent:(id)parent {
    self = [super init];
    if (self) {
        self.parent = (Parent *)parent;
    }
    return self;
}
- (void)dealloc {
    NSLog(@"Child dealloc");
}
@end
Ответ Создать тему
Опции темы

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