Tôi có một TableView xây dựng và vẽ ok, nhưng sau đó gặp sự cố khi cuộn chế độ xem. Tôi đã chạy qua trình gỡ lỗi và nó xuất hiện rằng các biến cấp lớp của tôi đang được ghi đè bằng cách nào đó để chúng không còn tồn tại khi titleForHeaderInSection được gọi lại. Điều rất lạ là nếu tôi thay thế mã:UITableView gặp sự cố khi cuộn
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSString *sectionTitle = [favouritesDataSections objectAtIndex:section];
return sectionTitle;
}
với:
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSString *sectionTitle = @"Test";
return sectionTitle;
}
Nó vẫn treo nhưng lần này danh sách debugger không phải là một NSString khi bạn di chuột qua biến sectionTitle.
Đây là mã tôi đã sử dụng để tạo ra các quan điểm và thiết lập các biến mức lớp:
- (void)loadView {
[super loadView];
CGRect tableSize = CGRectMake(0,0,320,460);
UITableView *favouritesTableView = [[UITableView alloc] initWithFrame:tableSize style:UITableViewStylePlain];
favouritesTableView.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);
favouritesTableView.dataSource = self;
favouritesTableView.delegate = self;
favouritesTableView.rowHeight = 52;
[self.view addSubview:favouritesTableView];
}
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// Get the full path of the favourites plist
NSString *filename = [documentsDirectory stringByAppendingPathComponent:@"Favourites.plist"];
// Initialise Dictionary and array
favouritesDataAll = [[NSMutableDictionary alloc] init];
favouritesDataSections = [[NSArray alloc] init];
NSDictionary *dict = [[[NSMutableDictionary alloc] initWithContentsOfFile:filename] retain];
favouritesDataAll = dict;
[dict release];
favouritesDataSections = [favouritesDataAll allKeys];
}
Tôi sẽ hoàn toàn điên cố gắng theo dõi này xuống - dành 2 ngày trên đó cho đến nay như vậy sẽ được bên ngoài biết ơn vì sự giúp đỡ nào.
Trân trọng
Dave
OK, nếu tôi đặt tại giữ lại ở phần cuối của dòng UITableView nó hoạt động trong khoảng 3 hoặc bốn lần và sau đó giao diện điều khiển cho: *** - [UISwipeGestureRecognizer dài]: chọn không được công nhận gửi đến dụ 0x43325d0 –
và cũng: *** Chấm dứt ứng dụng do ngoại lệ chưa được nhận 'NSRangeException', lý do: '*** - [đối tượng NSCFArrayAtIndex:]: index (0) vượt quá giới hạn (0)' –
OK, tôi sẽ tắt. Phần còn lại là cá trích đỏ mà tôi nghĩ. Đó là bởi vì tôi đã thay thế titleForHeaderInSection thành @ "Test" nó đã hoạt động được một thời gian. Lỗi giao diện điều khiển là: *** Chấm dứt ứng dụng do ngoại lệ chưa được nhận 'NSRangeException', lý do: '*** - [đối tượng NSCFArrayAtIndex:]: index (57744) vượt quá giới hạn (2)' –