Я сейчас бьюсь головой о кирпичную стену, пытаясь вернуть свое приложение к работе.
Все, что я хочу сделать, это показать UIActionSheet, как только будет выбрана строка в моем поисковом табличном представлении.Простая задача, которая может показаться ... кажется, нет.
Когда я запускаю приложение на симуляторе, оно SIGABRT еще до того, как оно даже загрузило rootViewController (StackTrace ниже).Я абсолютно не знаю, с чего начать копать.
Метод делегата моего приложения "didFinishLaunchingWithOptions" проходит гладко, последняя точка останова, которую я могу установить в своем коде, это:
OverviewViewController.m:
- (void)viewWillAppear:(BOOL)animated
{
// this it the last breakable line, jumping over it leads to the SIGABRT
[super viewWillAppear:animated];
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNewItem:)];
[[self navigationItem] setRightBarButtonItem:addButton];
[addButton release];
}
OverviewViewController - это мой NavigationController rootViewController, оба инициализированы в методе делегата приложения didFinishLaunchingWithOptions.
AppDelegate.m
OverviewViewController *ovController = [[OverviewViewController alloc] init];
(omitting initialization code for ovController)
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:ovController];
[ovController release];
NSArray *tabViews = [NSArray arrayWithObjects:navController, (my other controllers), nil];
[navController release];
[tabController setViewControllers:tabViews];
[window setRootViewController:tabController];
Ошибка начала появляться после iначал реализовывать совершенно другое представление (SearchControllerView), используя стандартные методы UITableViewDelegate и UITableViewDateSourceDelegate.Это представление даже не загружается при запуске, только при нажатии определенной кнопки.
StackTrace:
2011-01-08 13:22:21.279 ReleaseDate[5295:207] -[UITableView _saveOpaqueViewState:]: unrecognized selector sent to instance 0x502e000
2011-01-08 13:22:21.282 ReleaseDate[5295:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableView _saveOpaqueViewState:]: unrecognized selector sent to instance 0x502e000'
*** Call stack at first throw:
(
0 CoreFoundation 0x0118bbe9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x012e05c2 objc_exception_throw + 47
2 CoreFoundation 0x0118d6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x010fd366 ___forwarding___ + 966
4 CoreFoundation 0x010fcf22 _CF_forwarding_prep_0 + 50
5 UIKit 0x006745b3 -[UITableViewRowData initWithTableView:] + 285
6 UIKit 0x0052eae3 -[UITableView(_UITableViewPrivate) _updateRowData] + 84
7 UIKit 0x0052a6da -[UITableView numberOfSections] + 39
8 UIKit 0x006c25ee -[UITableViewController viewWillAppear:] + 100
9 ReleaseDate 0x00003364 -[OverviewViewController viewWillAppear:] + 68
10 UIKit 0x00579c9a -[UINavigationController _startTransition:fromViewController:toViewController:] + 858
11 UIKit 0x00574606 -[UINavigationController _startDeferredTransitionIfNeeded] + 266
12 UIKit 0x0068ce01 -[UILayoutContainerView layoutSubviews] + 226
13 QuartzCore 0x01f25451 -[CALayer layoutSublayers] + 181
14 QuartzCore 0x01f2517c CALayerLayoutIfNeeded + 220
15 QuartzCore 0x01f1e37c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
16 QuartzCore 0x01f1e0d0 _ZN2CA11Transaction6commitEv + 292
17 UIKit 0x004c019f -[UIApplication _reportAppLaunchFinished] + 39
18 UIKit 0x004c0659 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 690
19 UIKit 0x004cadb2 -[UIApplication handleEvent:withNewEvent:] + 1533
20 UIKit 0x004c3202 -[UIApplication sendEvent:] + 71
21 UIKit 0x004c8732 _UIApplicationHandleEvent + 7576
22 GraphicsServices 0x0199da36 PurpleEventCallback + 1550
23 CoreFoundation 0x0116d064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
24 CoreFoundation 0x010cd6f7 __CFRunLoopDoSource1 + 215
25 CoreFoundation 0x010ca983 __CFRunLoopRun + 979
26 CoreFoundation 0x010ca240 CFRunLoopRunSpecific + 208
27 CoreFoundation 0x010ca161 CFRunLoopRunInMode + 97
28 UIKit 0x004bffa8 -[UIApplication _run] + 636
29 UIKit 0x004cc42e UIApplicationMain + 1160
30 ReleaseDate 0x00002ac4 main + 102
31 ReleaseDate 0x00002a55 start + 53
)
terminate called after throwing an instance of 'NSException'
Кто-нибудь может помочь мне встать на правильный путь?Я действительно начинаю сходить с ума от этого ...
ОБНОВЛЕНИЕ
Реализация cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"UITableViewCell"] autorelease];
}
// set search item information
WebSearchItem *wsi = [self.searchData objectAtIndex:[indexPath row]];
[[cell textLabel] setText:[wsi title]];
[[cell detailTextLabel] setText:[NSString stringWithFormat:@"%@ - %@", [wsi descText], [[wsi releaseDate] dateToString:@"yyyy-MM-dd"]]];
[cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
return cell;
}
Реализация OverviewViewController.m init методы
- (id)init
{
[super initWithStyle:UITableViewStyleGrouped];
[[self navigationItem] setTitle:@"ReleaseDate"];
return self;
}
-(id)initWithStyle:(UITableViewStyle)style
{
return [self init];
}
ОБНОВЛЕНИЕ 2
OverviewViewController.h
@interface OverviewViewController : UITableViewController {
...
}
SearchViewController.h
@interface SearchViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UISearchBarDelegate, UIActionSheetDelegate> {
IBOutlet UITableView *tableView;
...
}
@property (nonatomic, retain) IBOutlet UITableView *tableView;