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

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
di_ingenio
98 / 6 / 1
Регистрация: 14.05.2013
Сообщений: 50
#1

Удаление объектов - Программирование iOS

31.07.2013, 12:47. Просмотров 479. Ответов 0
Метки нет (Все метки)

Ситуация такая.
Объявлен массив вне класса NSArray *messageType;
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
NSArray *messageType;
@interface SMessage : NSObject
@property NSString *strOut;
@property NSArray *strIn;
 
-(id) init: (NSString*)strOut strIn:(NSArray*)strIn;
-(id) setDataStr:(NSString*)str;
-(NSString*)strOut;
-(void)setStrOut:(NSString *)value;
+(NSArray*) initArray;
 
@end
его реализация
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
43
44
45
46
47
48
49
50
51
52
53
54
@implementation SMessage
@synthesize strIn;
@synthesize strOut;
NSString *strData=@"";
 
-(id) init: (NSString*)strOutMessage strIn:(NSArray*)strInMessage
{
    strOut=strOutMessage;
    strIn=strInMessage;
    return [self init];
}
- (id) setDataStr:(NSString*)str
{
    strData=str;
}
- (NSString*)strOut
{
    if(strData!=NULL)
    {
        NSString *str=strData;
        strData=@"";
        return [NSString stringWithFormat:@"%@%@", strOut, str];
    }
    else
    {
        return strOut;
    }
}
 
-(id)setStrOut:(NSString *)value
{
    strOut=value;
    return self;
}
+ (NSArray*) initArray
{
    
  messageType=@[
    [[SMessage alloc] init:outMessage[1] strIn:@[inMessage[2],inMessage[3]]],
                      
    [[SMessage alloc] init:outMessage[2] strIn:@[inMessage[2],inMessage[4]]],
                      
    [[SMessage alloc] init:outMessage[3] strIn:@[inMessage[3],inMessage[5],inMessage[6]]],
    
    [[SMessage alloc] init:outMessage[4] strIn:@[inMessage[5],inMessage[6],inMessage[7]]],
    
    [[SMessage alloc] init:outMessage[5] strIn:@[@""]],
    
    [[SMessage alloc] init:outMessage[6] strIn:@[inMessage[2]]]
    ];
    
    return messageType;
}
@end
outMessage и inMessage - константные массивы строк.
в main.m вызываю инициализацию массива messageType;
Потом использую этот массив в методах ViewContoller. Если у объекта SMessage (например,
Objective-C
1
messageType[2]
) вызывать метод setDataStr, то при потом (при окончании метода, в котором был этот вызов), у этого объекта (messageType[2]) вызывается dealloc. Т.е. при повторном обращении вылетает
Objective-C
1
-[SMessage retain]: message sent to deallocated instance
Как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2013, 12:47     Удаление объектов
Посмотрите здесь:

Проверка на удаление объектов - Objective-C
Привет всем. Пишу в Obj C совсем недавно. Интересно проверить не утекает ли где память. Как это можно сделать?

Пересечение объектов - Objective-C
Как узнать пересекаются ли 2 объекта типа SKSpriteNode?

Копирование объектов - Objective-C
Добрый день! Обнаружил, что я не понимаю каких-то очень базовых вещей. Был бы очень рад, если бы мне подсказали :) Столкнулся с...

Последовательность создания объектов - Objective-C
Подскажите пожалуйста. У меня есть класс отвечающий за загрузку данных по url и дата класс которые кушает словарь, который подгрузил класс...

Хранение объектов в массиве - Objective-C
Добрый вечер! Стоит задача: создать матрицу с задаваемыми размерами строки и столбца и провести над ней операцию. При выполнении задания...

Правильная имплементация объектов - Программирование iOS
Здравствуйте. Подскажите пожалуйста, сейчас слушаю лекции по программирования для iOS и там лектор говорит, что при имплементации объекта в...

Хранение WEAK объектов в массиве - Objective-C
Иногда возникает ситуация хранить в массиве просто указатели на объекты, таким образом, чтобы счетчик их ссылок при таком хранении не...

SpriteKIT (Создаем массив объектов) - Программирование iOS
Господа, добрый день. нужна помощь. Делаю недотетрис. Использую SpriteKIT Немного переоценил свои силы - сложно разобраться с...

Удаление объектов - C#
Всем добрый день! У меня следующий вопрос: в цикле, который выполняется несколько тысяч раз есть такая строка myClass obj = new...

Удаление объектов в Qt - C++ Qt
Не пинайте уж сильно, второй день осваиваю сие творение... и возник вопрос: пишу консольное приложение, создаю с помощью new объет,...

Удаление объектов - Unity, Unity3D
Мне нужно чтобы по нажатию на кнопку удалялся со сцены одновременно несколько объектов. Как удалить 1 объект я знаю...

AS 3.0 Удаление объектов - ActionScript
Как правильно удалить массив, который содержит в себе объекты класса, в котором определены массивы объектов? var v1:Vector.<SomeClass>...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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