Iphone 使用for循环键向NSMutableArray添加数据
我是iPhone新手,我想用每个元素的名称向NSMutableArray添加元素 我为键创建了一个可变数组,然后为元素创建了另一个数组,这些元素是我从名为Pages的对象中获取的 我编写了以下代码Iphone 使用for循环键向NSMutableArray添加数据,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我是iPhone新手,我想用每个元素的名称向NSMutableArray添加元素 我为键创建了一个可变数组,然后为元素创建了另一个数组,这些元素是我从名为Pages的对象中获取的 我编写了以下代码 NSMutableArray *myArray; NSMutableArray *arrayKey = [[NSMutableArray alloc] initWithObjects:@"b_pag_id", @"b_pag_bo_id", @"b_pag_num", @"b_pag_note",
NSMutableArray *myArray;
NSMutableArray *arrayKey = [[NSMutableArray alloc] initWithObjects:@"b_pag_id", @"b_pag_bo_id", @"b_pag_num", @"b_pag_note", @"b_page_mark", @"b_page_stop", @"b_pag_user_id", nil];
for (int x=0; x<[pages count]; x++) {
Pages *myPages = (Pages *)[self.pages objectAtIndex:x];
NSString *b_pag_id2 = [NSString stringWithFormat:@"%d",myPages.b_pag_id];
NSString *b_pag_bo_id2 = [NSString stringWithFormat:@"%d",myPages.b_pag_bo_id];
NSString *b_pag_num2 = [NSString stringWithFormat:@"%d",myPages.b_pag_num];
NSString *b_pag_note2 = myPages.b_pag_note;
NSString *b_page_mark2 = [NSString stringWithFormat:@"%d",myPages.b_page_mark];
NSString *b_page_stop2 = [NSString stringWithFormat:@"%d",myPages.b_page_stop];
NSString *b_pag_user_id2 = [NSString stringWithFormat:@"%d",myPages.b_pag_user_id];
NSMutableArray *arrayValue = [[NSMutableArray alloc] initWithObjects:b_pag_id2, b_pag_bo_id2, b_pag_num2, b_pag_note2, b_page_mark2, b_page_stop2, b_pag_user_id2, nil];
NSDictionary *theReqDictionary = [NSDictionary dictionaryWithObjects:arrayValue forKeys:arrayKey];
myArray = [NSMutableArray arrayWithObjects:theReqDictionary,nil];
}
NSLog(@"array size: %d", [myArray count]);
NSMutableArray*myArray;
NSMUTABLEARRY*arrayKey=[[NSMUTABLEARRY alloc]initWithObjects:@“b_pag_id”,“b_pag_bo_id”,“b_pag_num”,“b_pag_note”,“b_page_mark”,“b_page_stop”,“b_pag_user_id”,nil];
对于(int x=0;x每次通过循环,您都要为只有一个元素的myArray
创建一个新数组。您应该在循环之前初始化一个空的NSMutableArray,然后简单地将新对象添加到其中,而不是使用arrayWithObjects:
来创建myArray
。在需要初始化循环之前莉莎·阿拉伊
NSMutableArray *myArray = [NSMutableArray array];
在回路内部更换以下部件:
myArray = [NSMutableArray arrayWithObjects:theReqDictionary,nil];
与
问题是,您正在创建一个新数组,每个循环迭代中有一个字典。相反,您需要初始化数组并逐个添加值。这里我给出一个简短的示例,希望这对您有所帮助。
请参阅此代码:-
NSMutableArray *arrayValue = [[NSMutableArray alloc]initWithObjects:@"Value1",@"Value2",@"Value3", nil];
NSMutableArray *arrayKey = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];
NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
for(int i=0;i<3;i++)
{
[dic setObject:[arrayValue objectAtIndex:i] forKey:[arrayKey objectAtIndex:i]];
}
//and you can see this by printing it using nslog-
NSLog(@"%@",[dic valueForKey:@"1"]);
NSMutableArray*arrayValue=[[NSMutableArray alloc]initWithObjects:@“Value1”、“Value2”、“Value3”、nil];
NSMUTABLEARRY*arrayKey=[[NSMUTABLEARRY alloc]initWithObjects:@“1”、“2”、“3”、nil];
NSMutableDictionary*dic=[[NSMutableDictionary alloc]init];
对于(int i=0;我为什么不创建一个单独的字典,而不经历所有这些麻烦。你能给我看一下代码吗?因为我是iPhone新手,为什么代码对我没有帮助???我在阅读代码时理解这个想法,但你能告诉我如何正确添加元素吗?请看NSMutableArray
的文档;它描述了添加元素的方法。
NSMutableArray *arrayValue = [[NSMutableArray alloc]initWithObjects:@"Value1",@"Value2",@"Value3", nil];
NSMutableArray *arrayKey = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];
NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
for(int i=0;i<3;i++)
{
[dic setObject:[arrayValue objectAtIndex:i] forKey:[arrayKey objectAtIndex:i]];
}
//and you can see this by printing it using nslog-
NSLog(@"%@",[dic valueForKey:@"1"]);