Ios NSMutablearray不';t打印所有数组元素

Ios NSMutablearray不';t打印所有数组元素,ios,objective-c,nsmutablearray,Ios,Objective C,Nsmutablearray,我将使用下面的代码在数组中动态存储元素,并在以后检索它 for (int i = 0; i< [companyNames count]; i++){ testimonialsArray = [[NSMutableArray alloc]init]; testimonialsComplementedArray = [[NSMutableArray alloc]init]; [testimonialsArray addObject:companyNames[i] ];

我将使用下面的代码在数组中动态存储元素,并在以后检索它

for (int i = 0; i< [companyNames count]; i++){
    testimonialsArray = [[NSMutableArray alloc]init];
    testimonialsComplementedArray = [[NSMutableArray alloc]init];
    [testimonialsArray addObject:companyNames[i] ];
    [testimonialsComplementedArray addObject:texts[i]];

    NSLog(@"Compliments %@",testimonialsComplementedArray);
}
EstimationalSarray=[[NSMutableArray alloc]init];//必须在循环外初始化
证明已完成阵列=[[NSMutableArray alloc]init];//必须在循环外初始化
对于(int i=0;i<[公司名称计数];i++){
[证明材料:公司名称[i]];
[证明完成阵列添加对象:文本[i]];
}
NSLog(@“恭维%@”,证明已完成阵列);

分配
认证数组=[[NSMutableArray alloc]init]中初始化,那么最终值只有您在finally中得到输出,像这样吗

testimonialsArray = [[NSMutableArray alloc]init];
testimonialsComplementedArray = [[NSMutableArray alloc]init]
 for (int i = 0; i< [companyNames count]; i++){
  [testimonialsArray addObject:companyNames[i] ];
[testimonialsComplementedArray addObject:texts[i]];
 }

NSLog(@"Compliments %@",testimonialsComplementedArray);
EstimationalSarray=[[NSMutableArray alloc]init];
证明已完成阵列=[[NSMutableArray alloc]init]
对于(int i=0;i<[公司名称计数];i++){
[证明材料:公司名称[i]];
[证明完成阵列添加对象:文本[i]];
}
NSLog(@“恭维%@”,证明已完成阵列);

您每次都在for循环中分配可变数组,因为它每次都会初始化数组并在其中添加对象。最好在ViewDidLoad方法中分配任何对象。

尝试这样做

testimonialsArray = [[NSMutableArray alloc]init];
testimonialsComplementedArray = [[NSMutableArray alloc]init];

for (int i = 0; i< [companyNames count]; i++){
[testimonialsArray addObject:companyNames[i] ];
[testimonialsComplementedArray addObject:texts[i]];

}
NSLog(@"Compliments %@",testimonialsComplementedArray);
EstimationalSarray=[[NSMutableArray alloc]init];
证明完整数组=[[NSMutableArray alloc]init];
对于(int i=0;i<[公司名称计数];i++){
[证明材料:公司名称[i]];
[证明完成阵列添加对象:文本[i]];
}
NSLog(@“恭维%@”,证明已完成阵列);


它必须在ui中显示推荐详细信息和赞美。nslog打印独特的详细信息,但在ui上,它会三次打印相同的详细信息,这意味着ui代码中存在问题。请发布更多代码它会在屏幕上三次显示相同的证明详细信息它会根据您的
公司名称显示详细信息兄弟,您需要的除了其他任何东西之外我认为您忘记分配
证明完成阵列的内存,请检查更新的答案兄弟我认为这里不需要这个,`[CertionalSarray addObject:companyNames[i]];`在这里,您可以直接使用CertificationalSarray=companyNames;恭喜兄弟,很高兴听到您能在循环之外添加对象吗?对于每个索引的对象,您必须为循环添加对象。请您详细说明一下,因为您正在为名为“companyNames”的数组使用循环,该数组中有许多对象,如果要在另一个可变类型的数组中添加每个需要分配内存的对象,for循环中使用的int i变量是一个局部变量,它的存在仅限于for循环块中,当控件从该块中伸出时,int i变量deallocated意味着不再可用。这就是为什么需要在for循环中为变量i的每个递增索引或值从另一个数组向数组中添加对象的原因。在ui上,相同的详细信息被打印三次。你可以告诉我公司名称中有哪些数据,文本数组请检查您为表视图提供的节数。它在屏幕上显示了三次相同的公司名称。请看,问题是在某些地方一步一步检查您的代码。给定的代码中没有问题。
testimonialsArray = [[NSMutableArray alloc]init];
testimonialsComplementedArray = [[NSMutableArray alloc]init]
 for (int i = 0; i< [companyNames count]; i++){
  [testimonialsArray addObject:companyNames[i] ];
[testimonialsComplementedArray addObject:texts[i]];
 }

NSLog(@"Compliments %@",testimonialsComplementedArray);
testimonialsArray = [[NSMutableArray alloc]init];
testimonialsComplementedArray = [[NSMutableArray alloc]init];

for (int i = 0; i< [companyNames count]; i++){
[testimonialsArray addObject:companyNames[i] ];
[testimonialsComplementedArray addObject:texts[i]];

}
NSLog(@"Compliments %@",testimonialsComplementedArray);