Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.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
Ios 如何制作KVO观察器并向tableview提供可变数组信息?_Ios_Iphone_Objective C_Uitableview_Nsmutablearray - Fatal编程技术网

Ios 如何制作KVO观察器并向tableview提供可变数组信息?

Ios 如何制作KVO观察器并向tableview提供可变数组信息?,ios,iphone,objective-c,uitableview,nsmutablearray,Ios,Iphone,Objective C,Uitableview,Nsmutablearray,我有个问题,我是iphone编程的新手,我不知道怎么做。 我必须制作一个KVO观察器来知道textfield何时接收到字符串,并用动画将该字符串显示到tableview中,我已经从textfield中获得了字符串数组,但我不知道如何将其显示到tableview中。所以,如果有人帮忙,我们将不胜感激 这是我的密码: - (BOOL)textFieldShouldReturn:(UITextField *)textField{ NSUserDefaults *userDefaults = [

我有个问题,我是iphone编程的新手,我不知道怎么做。 我必须制作一个KVO观察器来知道textfield何时接收到字符串,并用动画将该字符串显示到tableview中,我已经从textfield中获得了字符串数组,但我不知道如何将其显示到tableview中。所以,如果有人帮忙,我们将不胜感激

这是我的密码:

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    if (!self.tasks) self.tasks = [NSMutableArray new];

    [self.tasks addObject:textField.text];
    [userDefaults setObject:self.tasks forKey:@"tasks"];
    NSLog(@"tasks:%@", [[NSUserDefaults standardUserDefaults]objectForKey:@"tasks"]);
    NSLog(@"number of tasks:%d", self.tasks.count); <-- this print works good, also the first one
    [textField addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:NULL];
    [textField resignFirstResponder];
    return YES;
}

将对象设置为
[NSUserDefaults standardUserDefaults]
确保调用
[NSUserDefaults standardUserDefaults]同步]

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    if (!self.tasks) self.tasks = [NSMutableArray new];

    [self.tasks addObject:textField.text];
    [userDefaults setObject:self.tasks forKey:@"tasks"];
    [userDefaults synchronize];
    NSLog(@"tasks:%@", [[NSUserDefaults standardUserDefaults]objectForKey:@"tasks"]);
    NSLog(@"number of tasks:%d", self.tasks.count); <-- this print works good, also the first one
    [textField addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:NULL];
    [textField resignFirstResponder];
    return YES;
}

根据您的应用程序体系结构,在
视图中调用
[self.tableView reloadData]
可能会更好:(BOOL)动画

尝试下面的代码..使用文本字段编辑

- (void)textFieldDidEndEditing:(UITextField *)textField
{
   NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    if (!self.tasks) self.tasks = [NSMutableArray new];

    [self.tasks addObject:textField.text];
    [userDefaults setObject:self.tasks forKey:@"tasks"];
    [userDefaults synchronize];
    NSLog(@"tasks:%@", [[NSUserDefaults standardUserDefaults]objectForKey:@"tasks"]);
    NSLog(@"number of tasks:%d", self.tasks.count); <-- this print works good, also the first one
    [textField addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:NULL];

    [textField resignFirstResponder];
    [self.yourtableview reloadData];

}
-(void)textfieldDendediting:(UITextField*)textField
{
NSUserDefaults*userDefaults=[NSUserDefaults standardUserDefaults];
如果(!self.tasks)self.tasks=[NSMutableArray new];
[self.tasks addObject:textField.text];
[userDefaults setObject:self.tasks forKey:@“tasks”];
[用户默认同步];
NSLog(@“任务:%@,[[NSUserDefaults standardUserDefaults]objectForKey:@“任务”]);

NSLog(@“任务数:%d”,self.tasks.count);同步是为了什么?我不知道那是什么,呵呵,视图中的重新加载数据将显示不工作,我需要tableview实时更新,同时文本字段返回字符串…谢谢。
- (void)viewDidLoad
{
  [super viewDidload];

  if (!self.TasksArray) self.TasksArray = [NSMutableArray new];
  self.TasksArray = [[NSUserDefaults standardUserDefaults]objectForKey:@"tasks"];

  [self.tableView reloadData]; 
}   

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
  NSLog(@"number of tasks when tableview:%d", self.TasksArray.count);
  return self.TasksArray.count;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
   NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    if (!self.tasks) self.tasks = [NSMutableArray new];

    [self.tasks addObject:textField.text];
    [userDefaults setObject:self.tasks forKey:@"tasks"];
    [userDefaults synchronize];
    NSLog(@"tasks:%@", [[NSUserDefaults standardUserDefaults]objectForKey:@"tasks"]);
    NSLog(@"number of tasks:%d", self.tasks.count); <-- this print works good, also the first one
    [textField addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:NULL];

    [textField resignFirstResponder];
    [self.yourtableview reloadData];

}