Как моя реализация UITableViewController не так? - PullRequest
0 голосов
/ 12 марта 2012

Этот код, скопированный в другое место, кажется, работает. Это просто внутри моего приложения, где он падает. Есть идеи почему?

другой .м ...

#import "JEntryTableViewController.h"
@interface JCreateViewController () {

    JEntryTableViewController *_tableView;

}

@property (nonatomic, strong) JEntryTableViewController *tableView;

@end

@implementation JCreateViewController

@synthesize tableView = _tableView;

- (id)init
{
    self = [super init];
    if (self) {

        self.tableView = [[JEntryTableViewController alloc] initWithStyle:UITableViewStylePlain];
        [self.view addSubview:self.tableView.view];

    }
    return self;
}

JEntryTableViewController.h:

#import <UIKit/UIKit.h>


@interface JEntryTableViewController : UITableViewController {

}

@end

JEntryTableViewController.m:

#import "JEntryTableViewController.h"

@interface JEntryTableViewController ()

@end

@implementation JEntryTableViewController

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 5;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CountryCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    return cell;
}

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 60;
}

@end

Я выполнил это как быстрый тест, чтобы убедиться, что он настроен правильно, и, к моему удивлению, когда я возвращаюсь к ячейке, которую я уже видел, она вылетает и выдает ошибку EXC_BAD_ACCESS. К сожалению, область отладки не дает мне ничего, с чем я могу работать, и я действительно не знаю, в чем проблема - это такой простой, простой набор кода. Я не знаю что исправить. Это должно работать.

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Вы можете реализовать TableView не так, как мы часто это делаем.

Вы можете добавить tableView непосредственно в ViewController, не используя другое наследование viewController от UITableViewController.

То, что вы должны делать, идентично тому, что вы делали в JEntryTableViewController.

Когда возникает проблема EXC_BAD_ACCESS, есть несколько решений, чтобы найти точную проблему. 1. Получен сигнал EXC_BAD_ACCESS http://www.touch -code-magazine.com / как в отладке-EXC_BAD_ACCESS /

  1. в правой части Xcode break points вы можете добавить такие точки останова, это может помочь вам быстро найти исключение в вашем случае.
0 голосов
/ 12 марта 2012

две вещи:

  1. написать <UITableViewDataSource, UITableViewDelegate> в JEntryTableViewController.h файл
  2. запишите здесь журнал сбоев, чтобы мы могли легко решить вашу проблему.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...