我目前正在创建我的 iPhone 应用程序的一部分,基本上有一个单元格列表(在表格视图中),它就像现有的苹果记事本一样。
我正在尝试使单元格的名称具有数组中字符串的名称。这就是我目前正在做的事情。
@interface ViewController ()
{
NSMutableArray *cameraArray;
NSMutableArray *notesArray;
NSMutableArray *voiceArray;
}
@end
@implementation ViewController
//@synthesize myTableView;
- (void)viewDidLoad
{
[super viewDidLoad];
NSUserDefaults *ud=[NSUserDefaults standardUserDefaults];
//[ud setObject:@"Archer" forKey:@"char1class"];
[ud synchronize];
NSString *key1;//[ud stringForKey:@"Key1"];
NSString *key2; //[ud stringForKey:@"Key1"];
NSString *key3; //[ud stringForKey:@"Key1"];
if([ud stringForKey:@"Key1"] == nil){
key1 = @"Open Camera Slot";
}else{
key1 = [ud stringForKey:@"key1"];
}
if([ud stringForKey:@"Key2"] == nil){
key2 = @"Open Camera Slot";
}else{
key2 = [ud stringForKey:@"key2"];
}
if([ud stringForKey:@"Key3"] == nil){
key3 = @"Open Camera Slot";
}else{
key3 = [ud stringForKey:@"key3"];
}
cameraArray = [[NSMutableArray alloc]initWithObjects:key1, key2, key3, nil];
}
//tableview datasource delegate methods
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return cameraArray.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if(cell == nil){
cell = [[CustomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
NSEnumerator *enumerator = [cameraArray objectEnumerator];
id anObject;
NSString *cellName = nil;
while (anObject = [enumerator nextObject]) {
cellName = anObject;
}
//static NSString *cellName = [cameraArray.objectAtIndex];
cell.textLabel.text = [NSString stringWithFormat:cellName];
return cell;
}
所以我基本上是从 NSUserDefaults 中的键创建 cameraArray 中的字符串(我这样做只是为了测试目的,稍后用户将输入这些字符串)
我坚持的是枚举器很好地遍历数组,但只使用 tableView 中所有单元格的最后一个值(第三个值)。
所以如果有三个字符串,“第一”“第二”和“第三”所有三个单元格都说“第三”
我该如何解决?