定製的tableviewcell ( label + UITextField) 能導致程序crash

tags:    時間:2013-12-16 09:21:07
定製的tableviewcell ( label + UITextField) 會導致程序crash
定製table view cell, 裡面包含一個UILabel, 一個 UITextField,當滑鼠點擊textfield要準備輸入的時候,程序就crash, 報告一下信息:[NSObject respondsToSelector]: message sent to deallocated.

code 大致如下:
定製的cell:
ComboCell.h 

@interace ComboCell: UITableViewCell <UITextFieldDelegate>
{
UITextField * textField;
UILabel *name;
}
@property (strong, nonatomic) IBOutlet UITextField * textField;
@property (strong, nonatomic) IBOutlet UILabel * textField;
@end

ComboCell.m
...
-(BOOL) textFieldShouldReturn:(UITextField *) textField
{
 [textField resignFirstResponder];
return YES.
}
還有一個 comboCell.xib, 裡面就是在 UITableViewCell裡面添加le label and textField, 並且把textField的delegate設定為 combocell.

使用這個cell的文件里主要有下面的東東:

-(void)viewDidLoad

  [super  viewDidLoad];
  
[self.tableview registerNib:[UINibnibWithNibName:@ComboCell"bundle"nil]forCellResuseIdentifier:@ComboCellId"];


...


-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath
{
   static NSString * cellID = @"ComboCellId";
ComboCell * cell = (ComboCell *)[tableView dequeueReusableCellWithIdentifier:cellId forIndexPath:indexpath];
return cell;
}

我注意到的一個現象是:如果我不把textField的delegate設定為 ComboCell, 就不會出現crash的現象, 似乎也跟我用nib來創建table cell 有關。 

希望高手指點是什麼原因導致crash,怎樣fix ? 我有很多不同的cell需要定製,我不想把textField的delegate指定為tableview 的controller.想讓每一個模塊都相對獨立。
多謝大俠幫忙!

------解決方案--------------------
你的cell都沒有分配內存
------解決方案--------------------
if (cell == nil)
{
     //給CELL分配一個內存並初始化
}
------解決方案--------------------
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath
{
   static NSString * cellID = @"ComboCellId";
ComboCell * cell = (ComboCell *)[tableView dequeueReusableCellWithIdentifier:cellId forIndexPath:indexpath];

推薦閱讀文章

Bookmark the permalink ,來源:互聯網