如何访问嵌入在数组中的自定义对象中的字符串?

时间:2011-02-23 20:14:08

标签: iphone objective-c ios4

(第一次发帖到论坛!)

我能够成功创建一个NSMutableArray,它在每个索引处都有一个自定义对象,但是当我在代码中的其他位置再次引用该Object时,我无法访问对象中的数据。

这是我将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时,我得到一个(null)值...任何想法???

非常感谢你!!

2 个答案:

答案 0 :(得分:0)

您是否尝试过这样做:

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

应该有效。您应该通过代码改进一些事项(例如使用带有@property的{​​{1}} [顺便说一下应该是小写的]并确保您没有泄漏内存[您的Subject +任务确实])但这应该是一个开始。

希望这有帮助!

答案 1 :(得分:0)

根据您的结果,您在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

其他* .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);
// ...

除非您复制或保留它,否则无需释放从数组中检索的值。否则,该值由Array本身管理。

希望这有帮助。