Ios 如何将一个NSArray数据添加到另一个NSArray字段?
我觉得问题的标题有点不匹配,你能看到下面的解释吗 目前我有两个NSArray的数据:Ios 如何将一个NSArray数据添加到另一个NSArray字段?,ios,objective-c,nsarray,Ios,Objective C,Nsarray,我觉得问题的标题有点不匹配,你能看到下面的解释吗 目前我有两个NSArray的数据: NSArray *arr1 = [[NSArray alloc]initWithObjects:@"aa",@"bb",@"1",@"cc", nil]; NSArray *arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4]; 在1st数组中,我从服务器获取了数据 我需要在2nd数组中的特定UILabel中加载这些参数 我正在查看O/p是否为: se
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"aa",@"bb",@"1",@"cc", nil];
NSArray *arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
在1st数组中,我从服务器获取了数据
我需要在2nd数组中的特定UILabel中加载这些参数
我正在查看O/p是否为:
self.lbl1.text = @"aa";
self.lbl2.text = @"bb";
self.lbl3.text = @"1";
self.lbl4.text = @"cc";
有什么可能性吗,你能帮我一下吗
在ViewController.h中
@property (strong, nonatomic)IBOutlet UILabel* lbl1;
@property (strong, nonatomic)IBOutlet UILabel* lbl2;
@property (strong, nonatomic)IBOutlet UILabel* lbl3;
@property (strong, nonatomic)IBOutlet UILabel* lbl4;
在ViewController.m中
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"aa",@"bb",@"1",@"cc", nil];
NSArray *arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
for(int i=0;(i<[arr1 count])&&(i<[arr2 count]);i++)
{
UILabel *label = (UILabel*)[arr2 objectAtIndex:i];
label.text = (NSString*)[arr1 objectAtIndex:i];
}
NSLog(@"%@,\n %@,\n %@, \n%@",self.lbl1,self.lbl2,self.lbl3,self.lbl4);
您不能直接执行此操作,但可以将
arr2
设置为:
arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
然后
for (UILabel *lbl in arr2) {
NSInteger i=[arr2 indexOfObject:lbl];
lbl.text = [arr1 objectAtIndex:i];
}
您不能直接执行此操作,但可以将
arr2
设置为:
arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
然后
for (UILabel *lbl in arr2) {
NSInteger i=[arr2 indexOfObject:lbl];
lbl.text = [arr1 objectAtIndex:i];
}
将标签存储在数组中,而不是其文本属性中
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"aa",@"bb",@"1",@"cc", nil];
NSArray *arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
for(int i=0;(i<[arr1 count])&&(i<[arr2 count]);i++)
{
UILabel *label = (UILabel*)[arr2 objectAtIndex:i];
label.text = (NSString*)[arr1 objectAtIndex:i];
}
NSArray*arr1=[[NSArray alloc]initWithObjects:@“aa”、“bb”、“1”、“cc”、“nil];
NSArray*arr2=@[self.lbl1,self.lbl2,self.lbl3,self.lbl4];
对于(int i=0;(i将标签存储在数组中,而不是其文本属性中)
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"aa",@"bb",@"1",@"cc", nil];
NSArray *arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
for(int i=0;(i<[arr1 count])&&(i<[arr2 count]);i++)
{
UILabel *label = (UILabel*)[arr2 objectAtIndex:i];
label.text = (NSString*)[arr1 objectAtIndex:i];
}
NSArray*arr1=[[NSArray alloc]initWithObjects:@“aa”、“bb”、“1”、“cc”、“nil];
NSArray*arr2=@[self.lbl1,self.lbl2,self.lbl3,self.lbl4];
对于(int i=0;(i假设两个数组的大小相同,可以执行以下操作:
NSArray *arr3 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
for (NSUInteger i = 0; i < arr1.count; i++) {
arr3[i].text = arr1[i];
}
假设两个阵列的大小相同,可以执行以下操作:
NSArray *arr3 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
for (NSUInteger i = 0; i < arr1.count; i++) {
arr3[i].text = arr1[i];
}
简短的回答:这不可能是你想要的方式
这是因为self.lbl1.text
是一个NSString,不再附加到self.lbl1
(text
是UILabel的副本属性)。如果更改此NSString,则
不会更改self.lbl1.text的值
更好的方法可能是只保存标签,而不保存其值:
NSArray *arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
在这种情况下,您可以在阵列中循环:
for (NSInteger i=0; i < arr2.count && i < arr1.count; i++) {
((UILabel*)[arr2 objectAtIndex:i]).text = [arr1 objectAtIndex:i];
}
for(NSInteger i=0;i
简短回答:这不可能是你想要的方式
这是因为self.lbl1.text
是一个NSString,不再附加到self.lbl1
(text
是UILabel的副本属性)。如果更改此NSString,则
不会更改self.lbl1.text的值
更好的方法可能是只保存标签,而不保存其值:
NSArray *arr2 = @[self.lbl1, self.lbl2, self.lbl3, self.lbl4];
在这种情况下,您可以在阵列中循环:
for (NSInteger i=0; i < arr2.count && i < arr1.count; i++) {
((UILabel*)[arr2 objectAtIndex:i]).text = [arr1 objectAtIndex:i];
}
for(NSInteger i=0;i
将标签存储在数组中,而不是它们的文本属性。如果你不使用我的,请重新校准答案@shahim将标签存储在数组中,而不是它们的文本属性。如果你不使用我的,请重新校准答案@shahim抱歉,我在“arr2”上崩溃了like::由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“***-[\uu NSPlaceholderArray initWithObjects:count:]:尝试从对象[0]插入nil对象”是否有标签1、lbl2..等具有nil
值?在第二行中放置断点(NSArray*arr2=…
)并检查它们的值。@MannamBrahmam请检查所有IBoutlet是否正确连接。问题是其中一个标签是nil
尝试将NSLog作为第一行。它将打印。很抱歉,我在“arr2”上遇到崩溃,如::由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'***-[\uu NSPlaceholderArray initWithObjects:count::]:尝试从对象[0]插入nil对象'是否有标签1、lbl2..等具有nil
值?在第二行中放置断点(NSArray*arr2=…
)并检查它们的值。@MannamBrahmam请检查所有IBOutlet是否正确连接。问题是其中一个标签是nil
尝试将NSLog作为第一行。它将打印出来。