如何将字符串中的字符串提取到不同的数组中

时间:2011-02-04 20:34:15

标签: iphone objective-c cocoa cocoa-touch

你好,我有NSMutableArray iconlocarr。我还有另一个包含名为xmlnodes的字典数据的数组,如下所示:

{
    nodeChildArray = (
        {
            nodeContent = "http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png";
        }
    );
    nodeName = weatherIconUrl;
}

我正在尝试将nodeContent数据(图标网址)添加到我的iconlocarr数组中:

[iconlocarr addObject:[[[xmlnodes objectAtIndex:i] objectForKey:@"nodeChildArray"] valueForKey:@"nodeContent"]];

我遇到的问题是上面的代码添加了以下数据:

(
    {
        nodeContent = "http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png";
    }
)

我还想要的数据

"http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"

如何添加nodeContents数据而不是其余数据?目的是将数据传递给NSURL

3 个答案:

答案 0 :(得分:1)

你确定它正在添加什么吗?从您的代码中,我希望它添加一个包含nodeContent字符串的数组,例如

(
    @"http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png;
)

这里的问题是你试图从数组中提取单个值(你的nodeChildArray值)并且你没有准确定义你想要怎么做。你想要数组中的第一项吗?最后?一个随机的项目?你应该搞清楚。无论如何,你可以使用

NSArray *ary = [[xmlnodes objectAtIndex:i] objectForKey:@"nodeChildArray"];

获取nodeChildArray值,然后确定您要在其中选择哪个值以从中提取内容。

答案 1 :(得分:0)

请改为尝试:

iconlocarr addObject:[[[[xmlnodes objectAtIndex:i] objectForKey:@"nodeChildArray"] objectAtIndex:0] objectForKey:@"nodeContent"]];

将对象“nodeChildArray”视为数组,然后提取索引0,然后返回的字典将包含“nodeContent”。

答案 2 :(得分:0)

KVC应该轻松应对:

for (id nodeContents in [xmlnodes valueForKeyPath:@"nodeChildArray.nodeContent"])
    [iconlocarr addObjectsFromArray:nodeContents];