Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
di_ingenio
98 / 6 / 1
Регистрация: 14.05.2013
Сообщений: 50
1

Удаление объектов

31.07.2013, 12:47. Просмотров 519. Ответов 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
Как это исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2013, 12:47
Ответы с готовыми решениями:

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

Сохранение массива объектов
Всем привет, подскажите как сохранить массив при помощи UserDefaults, где одним...

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

Проверка на удаление объектов
Привет всем. Пишу в Obj C совсем недавно. Интересно проверить не утекает ли...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2013, 12:47

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

Хранение объектов в массиве
Добрый вечер! Стоит задача: создать матрицу с задаваемыми размерами строки и...

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


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

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

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