Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 使用for循环键向NSMutableArray添加数据_Iphone_Objective C_Ios_Ipad - Fatal编程技术网

Iphone 使用for循环键向NSMutableArray添加数据

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",

我是iPhone新手,我想用每个元素的名称向NSMutableArray添加元素 我为键创建了一个可变数组,然后为元素创建了另一个数组,这些元素是我从名为Pages的对象中获取的

我编写了以下代码

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"]);