我有一个类,存储一些字符串以及如果其中一个字符串已更新BOOL标志设置为YES。NSTableView编辑不改变NSMutableArray
我有一个NSTableView,显示我的班级中的字符串。该视图是通过单独的控制器类来控制的,并且该视图由一个NSMutableArray提供。
GUI的东西似乎在显示数据方面工作正常,并允许我编辑表视图中的单元格。我遇到的问题是编辑不会更改存储在NSMutableArray中的对象。当我关闭应用程序时,我有一些调试代码可以打印出字符串,并且此时在GUI中没有任何更改显示在对象中。设置一个中断点,这些值被更改显示我的对象确实发生了变化,但这些更改似乎会丢失。我如何获得我在视图中做出的任何更改以保存存储在支持NSTableView的NSMutableArray中的对象?
这里是我很编码:从我的控制器类
// edit table values
-(void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn(NSTableColumn *)tableColumn row:(NSInteger)row
{
Snip *sn = [snippet_list objectAtIndex:row];
[sn setChanged:YES];
[sn setValue:object forKey:[tableColumn identifier]];
NSLog(@"Change: %@",sn.name);
}
这最后的NSLog语句显示我在GUI中所做的更改
// my class .h file
@interface Snip : NSObject <NSMutableCopying>
@property (assign) int64_t id_num;
@property (assign) BOOL changed;
@property NSMutableString *name;
@property NSMutableString *text;
@property (copy) NSString *language;
// my class .m file
import "Snip.h"
@implementation Snip
@synthesize id_num;
@synthesize name;
@synthesize text;
@synthesize changed;
@synthesize language;
方法。此外,setChanged:YES在关闭应用程序时打印NSMutableArray内容时也会丢失。
您是否有任何初始化代码恰好在更改后运行?你有可能在那里放置一个断点吗? – Monolo
@Monolo - >我相信你已经把我送到了正确的道路上。我正在调查并将回报。 –
@Monolo - >原来你的问题正是我需要听到的。我正在运行初始化两次,从而将数组重置为数据库的内容。感谢帮助。如果您编制解决此问题的答案,我会给您接受的答案复选标记。 –