Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Objective c NSTableView tableView在调用时更改所有行_Objective C_Xcode_Cocoa_Nstableview_Nsdatepicker - Fatal编程技术网

Objective c NSTableView tableView在调用时更改所有行

Objective c NSTableView tableView在调用时更改所有行,objective-c,xcode,cocoa,nstableview,nsdatepicker,Objective C,Xcode,Cocoa,Nstableview,Nsdatepicker,在另一位成员的建议下,我重写了我最近项目的一部分。我现在已经解决了之前遇到的问题,只花了几个小时来解决这个问题。非常感谢您的帮助 当我尝试使用NSMutableArray向NSTableView添加多个项时,它会用最新的项替换dateList中的所有项。这是我的.m文件。我在“将d对象日期设置为%@”中设置的NSLog将在我继续添加日期时第n次调用 @implementation TableViewController @synthesize myDatePicker; NSString

在另一位成员的建议下,我重写了我最近项目的一部分。我现在已经解决了之前遇到的问题,只花了几个小时来解决这个问题。非常感谢您的帮助

当我尝试使用NSMutableArray向NSTableView添加多个项时,它会用最新的项替换dateList中的所有项。这是我的.m文件。我在“将d对象日期设置为%@”中设置的NSLog将在我继续添加日期时第n次调用

 @implementation TableViewController
 @synthesize myDatePicker;
 NSString *myRenamed = @"CHANGED";
 int test = 0;


 - (id) init{

self = [super init];
if (self) {
    dateList = [[NSMutableArray alloc] init];
}   
return self;
 }


 -(void) awakeFromNib{
 [myDatePicker setDateValue: [NSDate date]];
 [self.myDatePicker sendActionOn:NSLeftMouseDown];
 NSLog(@"Hello from TableView at time: %@", myDatePicker.dateValue);
 }


- (IBAction)datePickerAction:(id)sender{
 test = 0;
[self getSetDate];
NSLog(@"getSetDate Finished with date %@", myRenamed);
[self myTableAdd];
NSLog(@"datePickerAction Finished");

 }


 - (void)getSetDate{

NSLog(@"Entering getSetDate%@", (myDatePicker.dateValue));

//set date to local & set format set on xib start
NSDate *myNewDate = [myDatePicker dateValue];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYYMMdd"];
myRenamed = [dateFormat stringFromDate:myNewDate];
NSLog(@"Ending getSetDate with %@",myRenamed);




  }


 - (NSInteger) numberOfRowsInTableView:(NSTableView *)tableView{

return [dateList count];
 }

 -(id) tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{

Date *d = [dateList objectAtIndex:row];
NSString *identifier = [tableColumn identifier];

d.date=myRenamed;
[d setDate:d.date];
NSLog(@"setting d object date to %@", d.date);
test ++;
return [d valueForKey:identifier];

 }


 - (void) myTableAdd{
NSLog(@"Called myTableAdd");

[dateList addObject:[[Date alloc] init]];
[tableview reloadData];

 }
图片:
这就是发生的情况,所有以前的日期条目都更改为上次单击的条目。感谢所有的帮助

在objectValueForTableColumn中,您正在用刚才添加的值覆盖每个值


d、 日期=我的名字

谢谢!然而,如果我把它说出来,日期永远不会被分配任何东西。我需要它们获取设置为MyRename(修改日期)的值。为什么不将新添加的日期存储在dateList中并使用这些对象呢?我不确定你们的约会班在做什么,我来试试看。我想保留存储对象的选项,但对于日期nsstring就可以了。另外,知道为什么会调用n次吗?调用reloadData,这样它就会重新加载整个表。