Как получить доступ к строке в пользовательском объекте, который я встроил в массив? - PullRequest
1 голос
/ 23 февраля 2011

(Первая публикация на форуме!)

Мне удалось успешно создать NSMutableArray, у которого есть пользовательский объект в каждом индексе, но я не могу получить доступ к данным в моем объекте, когда я ссылаюсь на этот объектснова в другом месте в моем коде.

Вот как выглядит мой NSMutableArray при выводе его в NSLog:

items = (
"<RSSFeedList: 0x682cbb0>",
"<RSSFeedList: 0x682f570>",
"<RSSFeedList: 0x68300a0>"

)

Как видите, в каждом индексе у меня есть свой пользовательский объект.Теперь я смог добраться до определенного Объекта, используя следующий код:

[items objectAtIndex:1]

, который выводит в NSLog:

<RSSFeedList: 0x602f250>

Однако я хотел бы получить доступ к информации вэтот объект и прямо сейчас я застрял .. Эта структура объектов выглядит следующим образом:

@interface RSSFeedList : NSObject {

NSString *subject;
NSMutableArray *rssfeedDetail;

}

@property (nonatomic, retain) NSString *subject;
@property (nonatomic, retain) RSSFeedLists *rssfeedDetail;

Я просто хотел бы сослаться на NSString "Subject".

Это то, что я пробовал:

RSSFeedList *fl = [[RSSFeedList alloc] init];

fl = [items objectAtIndex:1];

NSString *subject = (NSString *) [fl getSubjectText];

Я хотел бы отметить, что этот блок кода находится в другом классе, который получил NSMutableArray "item" из другого класса, поэтомувот почему я повторно создаю экземпляр RSSFeedListObject (не уверен, что эта часть верна)

Кроме того, getSubjectText определен в классе RSSFeedList и выглядит следующим образом:

-(NSString *) getSubjectText{
return subject ;

}

Когда я пробую все это, я получаю (нулевое) значение при выводе его в NSLog ... Любые идеи ???

Заранее большое спасибо !!

Ответы [ 2 ]

0 голосов
/ 23 февраля 2011

Судя по вашему результату, может возникнуть проблема с тем, как вы устанавливаете значение темы для ваших объектов RSSFeedList.Я предполагаю, что значение неправильно хранится в значении темы.Посмотрите на следующий код, который показывает пример установки / извлечения значений RSSFeelList:

RSSFeelList.h

see your code

RSSFeedList.m

@implementation RSSFeedList

@synthesize subject, rssfeedDetail;

// generates a usable log text
- (NSString *)description {
    return [NSString stringWithFormat:@"RSSFeedList {subject=%@}", self.subject];
}

@end

other * .m

// populate list
NSMutableArray *list = [[NSMutableArray alloc] init];
RSSFeedList *f = [[RSSFeedList alloc] init];
f.subject = @"test subject";
[list addObject:f];
[f release];

// access data
NSLog(@"Value = %@", list);
RSSFeedList *f2 = [list objectAtIndex:0];
NSString *s = f2.subject;
NSLog(@"Value = %@", s);
// ...

Вам не нужно освобождать значение, полученное из массива, если вы не скопировали или не сохранили его.В противном случае значение управляется самим массивом.

Надеюсь, это поможет.

0 голосов
/ 23 февраля 2011

Вы пытались просто сделать это:

RSSFeedList *fl = [items objectAtIndex:1];
NSString *subject = [fl getSubjectText];

Это должно работать.Есть несколько вещей, которые вы должны улучшить с помощью своего кода (например, использовать @property s с Subject [кстати, строчными буквами] и убедиться, что у вас нет утечек памяти [которые ваши init +назначение сделало]) но это должно быть начало.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...