2013-10-24 75 views
1

我得到一個SIGABRT錯誤的main.m:入門SIGABRT錯誤

#import <UIKit/UIKit.h> 

#import "AppDelegate.h" 

int main(int argc, char * argv[]) 
{ 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); // SIGABRT error 
    } 
} 

上午在控制檯得到這個,但無法理解:

2013-10-24 15:21:30.278 Blog_Reader[45888:a0b] -[__NSDictionaryI length]: unrecognized selector sent to instance 0xb779360 
2013-10-24 15:21:30.293 Blog_Reader[45888:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDictionaryI length]: unrecognized selector sent to instance 0xb779360' 
*** First throw call stack: 
(
    0 CoreFoundation      0x017345e4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x014b78b6 objc_exception_throw + 44 
    2 CoreFoundation      0x017d1903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275 
    3 CoreFoundation      0x0172490b ___forwarding___ + 1019 
    4 CoreFoundation      0x017244ee _CF_forwarding_prep_0 + 14 
    5 Foundation       0x010fcb2d -[NSConcreteMutableAttributedString replaceCharactersInRange:withString:] + 39 
    6 Foundation       0x010fd79a -[NSConcreteMutableAttributedString initWithString:attributes:] + 293 
    7 UIKit        0x003d7116 -[UILabel _setText:] + 97 
    8 UIKit        0x003d72d4 -[UILabel setText:] + 40 
    9 Blog_Reader       0x00002c3d -[TableViewController tableView:cellForRowAtIndexPath:] + 301 
    10 UIKit        0x00318d2f -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 412 
    11 UIKit        0x00318e03 -[UITableView _createPreparedCellForGlobalRow:] + 69 
    12 UIKit        0x002fd124 -[UITableView _updateVisibleCellsNow:] + 2378 
    13 UIKit        0x003105a5 -[UITableView layoutSubviews] + 213 
    14 UIKit        0x00294dd7 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355 
    15 libobjc.A.dylib      0x014c981f -[NSObject performSelector:withObject:] + 70 
    16 QuartzCore       0x03aee72a -[CALayer layoutSublayers] + 148 
    17 QuartzCore       0x03ae2514 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380 
    18 QuartzCore       0x03aee675 -[CALayer layoutIfNeeded] + 160 
    19 UIKit        0x0034fca3 -[UIViewController window:setupWithInterfaceOrientation:] + 304 
    20 UIKit        0x0026ed27 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 5212 
    21 UIKit        0x0026d8c6 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 82 
    22 UIKit        0x0026d798 -[UIWindow _setRotatableViewOrientation:updateStatusBar:duration:force:] + 117 
    23 UIKit        0x0026d820 -[UIWindow _setRotatableViewOrientation:duration:force:] + 67 
    24 UIKit        0x0026c8ba __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke + 120 
    25 UIKit        0x0026c81c -[UIWindow _updateToInterfaceOrientation:duration:force:] + 400 
    26 UIKit        0x0026d573 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 870 
    27 UIKit        0x00270b66 -[UIWindow setDelegate:] + 449 
    28 UIKit        0x00341dc7 -[UIViewController _tryBecomeRootViewControllerInWindow:] + 180 
    29 UIKit        0x002667cc -[UIWindow addRootViewControllerViewIfPossible] + 609 
    30 UIKit        0x00266947 -[UIWindow _setHidden:forced:] + 312 
    31 UIKit        0x00266bdd -[UIWindow _orderFrontWithoutMakingKey] + 49 
    32 UIKit        0x0027144a -[UIWindow makeKeyAndVisible] + 65 
    33 Blog_Reader       0x000023bb -[AppDelegate application:didFinishLaunchingWithOptions:] + 267 
    34 UIKit        0x00223f65 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309 
    35 UIKit        0x002247a5 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536 
    36 UIKit        0x00228fb8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824 
    37 UIKit        0x0023d42c -[UIApplication handleEvent:withNewEvent:] + 3447 
    38 UIKit        0x0023d999 -[UIApplication sendEvent:] + 85 
    39 UIKit        0x0022ac35 _UIApplicationHandleEvent + 736 
    40 GraphicsServices     0x036872eb _PurpleEventCallback + 776 
    41 GraphicsServices     0x03686df6 PurpleEventCallback + 46 
    42 CoreFoundation      0x016afdd5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53 
    43 CoreFoundation      0x016afb0b __CFRunLoopDoSource1 + 523 
    44 CoreFoundation      0x016da7ec __CFRunLoopRun + 2156 
    45 CoreFoundation      0x016d9b33 CFRunLoopRunSpecific + 467 
    46 CoreFoundation      0x016d994b CFRunLoopRunInMode + 123 
    47 UIKit        0x002286ed -[UIApplication _run] + 840 
    48 UIKit        0x0022a94b UIApplicationMain + 1225 
    49 Blog_Reader       0x00002e2d main + 141 
    50 libdyld.dylib      0x01d70725 start + 0 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

這是TableViewController.m文件:

@implementation TableViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSDictionary *blogPost1 = [NSDictionary dictionaryWithObjectsAndKeys:@"The Missing Widget in Android", @"title", @"Ben Jakuben", @"author", nil]; 

    NSDictionary *blogPost2 = [NSDictionary dictionaryWithObjectsAndKeys:@"Getting Started with iOS Development", @"title", @"Amit Bijlani", @"author", nil]; 

    NSDictionary *blogPost3 = [NSDictionary dictionaryWithObjectsAndKeys:@"An Interview with Shay Howe", @"title", @"Joe Villanueva", @"author", nil]; 


    self.blogPosts = [NSArray arrayWithObjects:blogPost1, blogPost2, blogPost3, nil]; 

} 

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

    // Configure the cell... 
    cell.textLabel.text = [self.blogPosts objectAtIndex:indexPath.row]; 

    return cell; 
} 

@end 

回答

2

你存儲NSDictionary實例中self.blogPosts,但隨後在

cell.textLabel.text = [self.blogPosts objectAtIndex:indexPath.row]; 

要指定其中一人text,這需要一個NSString。編譯器不會捕獲它,因爲objectAtIndex:返回類型爲id的對象,該對象可能是任何東西。

一個可能的修復(但它真的取決於你的需要)可能是

cell.textLabel.text = self.blogPosts[indexPath.row][@"title"]; 
+0

OK,但在哪裏?我一直在尋找使用Xcode中的文本搜索「長度」,並找不到它。 – pdenlinger

+0

我已經編輯了我的答案,「長度」可能是由單元內部調用的。 –

+0

謝謝,我發現了這個問題。錯過了一個聲明。 – pdenlinger