我有一个滚动视图,在滚动视图中,我以编程方式添加具有相同名称的表(表计数并不总是相同的数字),然后使用循环将它们添加到滚动中。
我的问题:我的应用程序创建第一个表,将数据放入其中,然后构建第二个表并放入数据,但是当它将数据放入第二个表时,第一个表中的数据会更改,因为它们具有相同的名称
我该如何解决这个问题?
for ( int i=0; i<[P1Rows count]; i++) {
[self AddPricesTable:i];
}
- (void)AddPricesTable:(int)GroupNum{
self.TableView = [[[UITableView alloc] initWithFrame:CGRectMake(ScrollView.frame.size.width * GroupNum, 0,
ScrollView.frame.size.width, ScrollView.frame.size.height) style:UITableViewStylePlain] autorelease];
self.TableView.backgroundColor = [UIColor blackColor];
self.TableView.dataSource = self;
self.TableView.delegate = self;
P1Dict = [P1Rows objectAtIndex: GroupNum];
NSLog(@"%@", [P1Dict objectForKey:@"Group"]);
P2URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://xxx.co/SFP/?Q=P2&V=%@",
[[P1Dict objectForKey:@"Group"] stringByReplacingOccurrencesOfString:@" " withString:@"%20"]]];
NSLog(@"%@", P2URL);
P2JsonString = [[NSString alloc] initWithContentsOfURL:P2URL usedEncoding:Encoding error:&Error];
P2JsonData = [P2JsonString dataUsingEncoding:NSUTF32BigEndianStringEncoding];
P2Dict = [[[CJSONDeserializer deserializer] deserializeAsDictionary:P2JsonData error:&Error] retain];
[self CheckConnect];
P2Rows = [P2Dict objectForKey:@"SFP"];
[self.TableView reloadData];
[ScrollView addSubview:self.TableView];
}
答案 0 :(得分:1)
你显然在这里泄露记忆。此外,您不需要拥有多个表,只需要一个表即可,并将其添加到“界面”构建器中。
您只需将UITabelView中的部分设置为您正在使用的表格数。
答案 1 :(得分:0)
您必须声明2个UITableView变量,使它们成为您的2个表的出口,将它们挂钩到接口构建器中,并提供委托和数据源。
然后在你的cellForRowAtIndexPath
:说:
if (tableView == outlet_to_table_ONE){
//populate the FIRST table as you wish
}
else{
//else should mean that tableView will be outlet_to_table_TWO (if you have only 2 tables)
//populate the SECOND table as you wish
}