Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何访问嵌入在数组中的自定义对象中的字符串?_Iphone_Objective C_Ios4 - Fatal编程技术网

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

Iphone 如何访问嵌入在数组中的自定义对象中的字符串?,iphone,objective-c,ios4,Iphone,Objective C,Ios4,第一次发布到论坛 我能够成功地创建一个NSMutableArray,它在每个索引处都有一个自定义对象,但是当我在代码的其他地方再次引用该对象时,我无法访问该对象中的数据 这就是我的NSMutableArray输出到NSLog时的样子: items = ( "<RSSFeedList: 0x682cbb0>", "<RSSFeedList: 0x682f570>", "<RSSFeedList: 0x68300a0>" <RSSFeedList: 0x6

第一次发布到论坛

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

这就是我的NSMutableArray输出到NSLog时的样子:

items = (
"<RSSFeedList: 0x682cbb0>",
"<RSSFeedList: 0x682f570>",
"<RSSFeedList: 0x68300a0>"
<RSSFeedList: 0x602f250>
哪些输出到NSLog:

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

我只想引用NSString主题

这就是我尝试过的:

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

fl = [items objectAtIndex:1];

NSString *subject = (NSString *) [fl getSubjectText];
我想指出的是,这段代码位于从另一个类接收NSMutableArray项的另一个类中,因此我正在重新实例化RSSFeedListObject,但不确定这部分是否正确

此外,getSubjectText在RSSFeedList类中定义,如下所示:

@interface RSSFeedList : NSObject {

NSString *subject;
NSMutableArray *rssfeedDetail;
-(NSString *) getSubjectText{
return subject ;
}

当我尝试所有这些时,当我将其输出到NSLog时,我得到一个空值。。。有什么想法吗


提前非常感谢

您是否尝试过这样做:

RSSFeedList *fl = [items objectAtIndex:1];
NSString *subject = [fl getSubjectText];
这应该行得通。在代码中有一些地方需要改进,比如使用@propertys和Subject[顺便说一句,应该是小写]以及确保没有泄漏内存(init+赋值就是这样做的),但这应该是一个开始


希望这有帮助

根据您的结果,您在RSSFeedList对象上设置主题值的方式似乎有问题。我的猜测是,一个值没有正确地存储在subject值中。查看以下代码,其中显示了设置/检索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);
// ...
不需要释放从数组中检索到的值,除非复制或保留该值。否则,该值由数组本身管理


希望这有帮助。

我确实在对象中使用了@property标记。添加了上面的编辑,感谢您的命名建议!我只是尝试了你的建议,但它仍然显示为空…如果你想得到值0x602f250,那么你必须解析它。NSMutableArray不像哈希表那样工作。这肯定是我设置对象的方式。。。。我正确地将对象RSSFeedList添加到items数组中,但没有正确地设置实际的RSSFeedList对象。我仿效了你的例子,效果很好。谢谢如何向对象添加数组?对于字符串“subject”,您刚刚执行了f.subject=@testsubject。。。对于我的NSMutableArray*rssfeedDetail;我正在尝试像[f.rssFeedDetailAddObject:rssItems]。。其中rssItems是我嵌入的另一个对象,但没有效果。谢谢您是否初始化了rssfeedDetail数组?您需要在RSSFeedList.m中的init override方法中执行此操作,或者在实例化RSSFeedList时将其设置为一个值,例如,f.rssfeedDetail=[[NSMutableArray alloc]init autorelease]。在另一个*.m文件中,我在RSSFeedList声明之后添加了这一行,并且它引发了一个异常:RSSFeedList*f=[[RSSFeedList alloc]init]; f、 rssfeedDetail=[[NSMutableArray alloc]init]。。不知道为什么。。再次感谢你的帮助!错误为:-[RSSFeedList setRssfeedDetail:]:发送到实例0x682f280 2011-02-23 18:29:19.774 TestApp[37344:207]***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[RSSFeedList setRssfeedDetail:]:发送到实例0x682f280的未识别选择器'