tableView在向其添加对象后崩溃

时间:2014-05-26 16:11:26

标签: ios objective-c uitableview segue ibaction

当一个人在textField中输入内容然后按下Done按钮时,它应该将该值添加到我的NSMutableArray中。以下是此操作的代码:

- (IBAction)Fertig: (UIStoryboardSegue *)segue2;
{
KategorieTableViewNeueKategorieViewController *KategorieTVNeueKategorieVC = segue2.sourceViewController;
KategorienTableViewController *neuerKategoriename = [[KategorienTableViewController alloc]initwithData: KategorieTVNeueKategorieVC.neuerKategoriename];
[self.Kategorie addObject: neuerKategoriename];

[self.tableView reloadData];


}

我也确实实现了方法initwithData,但我不知道这是否正确:

-(id)initwithData:(NSMutableString *)theName
{
if (self)
{
    self.Kategorie = [theName mutableCopy]  ;
}
return self;
}

我可以将值添加到我的表视图中但是如果我向下滚动到该值应该是的底部,我的应用程序崩溃并且我收到错误警告'Thread 1:signal SIGABRT'

以下是我的cellForRowatindexPath方法的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:    (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (!cell)
{
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}

if (tableView == self.tableView)
{
    cell.textLabel.text = self.kategorie [indexPath.row];
}
else
{
    cell.textLabel.text = self.results [indexPath.row];
}

// Configure the cell...

    return cell;

}

我做错了什么?如果这个问题太容易,我很抱歉,但我是Devlopment的新手。如果您需要更多信息,请询问!

1 个答案:

答案 0 :(得分:0)

你的代码非常混乱。

您的segue2 IBAction正在治疗您的" Kategorie"属性就好像它是一个可变数组。

(BTW,类名应以大写字母开头,属性名称/ iVars /方法名称应以小写字母开头。这是iOS和Mac OS中非常强大的命名约定,实际上是必需的命令属性setter / getter方法正常工作。)

然后您发布了代码作为SOMETHING的初始代码,但您不能说出什么。告诉我们该代码属于哪个类,并发布该类的整个标题。

但是,您的init方法无法调用[super init],这是一个错误。

Init方法看起来像这样:

-(id)initwithData:(NSMutableString *)theName
{
  self = [super init]; //You were missing this step.
  if (self)
  {
    self.Kategorie = [theName mutableCopy]  ;
  }
  return self;
}