0

我是ios开发新手。我以字典的形式从我的 Web 服务中获取某些数据(其中包含一个变量和一个项目字典数组)。我成功地将数据存储在 userdefaults 中。

我使用 for 循环为每个项目字典中的特定键形成一个名为 img_urls 的新数组。

我的问题是:当我使用 [img_urls objectAtIndex:0] 访问这个数组时,我得到完整的数组作为输出,而不是仅在第 0 个索引处获取值。并且给 [img_urls objectAtIndex:1] 给我 NSRangeException。

这是我的代码:

NSDictionary *restData=[[NSUserDefaults standardUserDefaults]valueForKey:@"Rest data"];
totalResult=[[restData valueForKey:@"totalResult"]intValue];
restaurants=[[NSArray alloc] initWithObjects:[restData valueForKey:@"restaurants"], nil ];
for(NSDictionary *item in restaurants)
{


    [img_urls addObject:[item valueForKey:@"profileImage"]];
}
  NSLog(@"REST NAMES%@",[img_urls objectAtIndex:0]);

任何帮助,将不胜感激。提前致谢!

4

3 回答 3

0

改变方法如下: -

[[NSArray alloc] initWithObjects:[restData valueForKey:@"restaurants"], nil ]

//下面修改

[[NSArray alloc] initWithArray:[restData valueForKey:@"restaurants"]]

于 2013-10-18T12:27:54.013 回答
0

您在初始化时将 array([restData valueForKey:@"restaurants"]) 作为一个对象提供给餐厅数组,因此在使用时您将获得整个数组objectAtIndex:0

NSDictionary *restData=[[NSUserDefaults standardUserDefaults]valueForKey:@"Rest data"];
totalResult=[[restData valueForKey:@"totalResult"]intValue];
餐厅=[[NSArray alloc] initWithArray:[restData valueForKey:@"restaurants"]];
for(NSDictionary *餐厅中的项目)
{


    [img_urls addObject:[item valueForKey:@"profileImage"]];
}
  NSLog(@"REST NAMES%@",[img_urls objectAtIndex:0]);
于 2013-10-18T13:02:57.380 回答
0

首先,您是否分析过数组,请尝试如下:-

img_urls=[NSMutableArray array];
NSDictionary *restData=[[NSUserDefaults standardUserDefaults]valueForKey:@"Rest data"];
totalResult=[[restData valueForKey:@"totalResult"]intValue];
restaurants=[[NSArray alloc] initWithObjects:[restData valueForKey:@"restaurants"], nil ];
for(NSDictionary *item in restaurants)
{


    [img_urls addObject:[item valueForKey:@"profileImage"]];
}
//Check first array count
if ([img_urls count] > 0)
{
  NSLog(@"REST NAMES%@",[img_urls objectAtIndex:0]);
}
于 2013-10-18T13:01:16.587 回答