2014-09-23 3 views
1

Я пытаюсь запустить мое приложение, однако, каждый раз, когда я нажимаю на ссылку «Профиль», мое приложение падает, и я получаю следующее сообщение в своем отладочном выходе. См. Снимок экрана ниже. Я запускаю Xcode 5.1.Тема 1: сигнал SIGABRT Xcode 5.1

[UIImageView setFile:]: unrecognized selector sent to instance 0x10b2ebe00 
2014-09-23 11:54:33.498 [1295:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView setFile:]: unrecognized selector sent to instance 0x10b2ebe00' 
*** First throw call stack: 
(
    0 CoreFoundation      0x0000000102a97495 __exceptionPreprocess + 165 
    1 libobjc.A.dylib      0x00000001027f699e objc_exception_throw + 43 
    2 CoreFoundation      0x0000000102b2865d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 
    3 CoreFoundation      0x0000000102a88d8d ___forwarding___ + 973 
    4 CoreFoundation      0x0000000102a88938 _CF_forwarding_prep_0 + 120 
    5 Uscout        0x00000001000084c9 -[ProfileViewController updateUserStatus] + 185 
    6 Uscout        0x0000000100008408 -[ProfileViewController viewWillAppear:] + 88 
    7 UIKit        0x000000010149cdb5 -[UIViewController _setViewAppearState:isAnimating:] + 422 
    8 UIKit        0x00000001014bac4d -[UINavigationController _startTransition:fromViewController:toViewController:] + 707 
    9 UIKit        0x00000001014bb787 -[UINavigationController _startDeferredTransitionIfNeeded:] + 547 
    10 UIKit        0x00000001014bc238 -[UINavigationController __viewWillLayoutSubviews] + 43 
    11 UIKit        0x00000001015d6895 -[UILayoutContainerView layoutSubviews] + 202 
    12 UIKit        0x0000000101403993 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 354 
    13 QuartzCore       0x0000000100e9a802 -[CALayer layoutSublayers] + 151 
    14 QuartzCore       0x0000000100e8f369 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 363 
    15 QuartzCore       0x0000000100e8f1ea _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24 
    16 QuartzCore       0x0000000100e02fb8 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 252 
    17 QuartzCore       0x0000000100e04030 _ZN2CA11Transaction6commitEv + 394 
    18 UIKit        0x00000001013a2024 _UIApplicationHandleEventQueue + 10914 
    19 CoreFoundation      0x0000000102a26d21 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    20 CoreFoundation      0x0000000102a265f2 __CFRunLoopDoSources0 + 242 
    21 CoreFoundation      0x0000000102a4246f __CFRunLoopRun + 767 
    22 CoreFoundation      0x0000000102a41d83 CFRunLoopRunSpecific + 467 
    23 GraphicsServices     0x0000000102d5bf04 GSEventRunModal + 161 
    24 UIKit        0x00000001013a3e33 UIApplicationMain + 1010 
    25 Uscout        0x0000000100007073 main + 115 
    26 libdyld.dylib      0x0000000105c505fd start + 1 
    27 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

enter image description here

ProfileViewController.m

#import "ProfileViewController.h" 

@interface ProfileViewController() 
@property (weak, nonatomic) IBOutlet PFImageView *profileImageView; 
@property (weak, nonatomic) IBOutlet UILabel *userNameLabel; 
@property (weak, nonatomic) IBOutlet UILabel *followersNumberLabel; 
@property (weak, nonatomic) IBOutlet UILabel *followingNumberLabel; 


@end 


@implementation ProfileViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self updateUserStatus]; 
} 

- (void)updateUserStatus { 
    PFUser *user = [PFUser currentUser]; 
    self.profileImageView.file = user[@"profilePicture"]; 
    [self.profileImageView loadInBackground]; 
    self.userNameLabel.text = user.username; 

    PFQuery *followingQuery = [PFQuery queryWithClassName:@"Activity"]; 
    [followingQuery whereKey:@"fromUser" equalTo:user]; 
    [followingQuery whereKey:@"type" equalTo:@"follow"]; 
    [followingQuery findObjectsInBackgroundWithBlock:^(NSArray *followingActivities, NSError *error) { 
     if (!error) { 
      self.followingNumberLabel.text = [[NSNumber numberWithInteger:followingActivities.count] stringValue]; 
     } 
    }]; 

    PFQuery *followerQuery = [PFQuery queryWithClassName:@"Activity"]; 
    [followerQuery whereKey:@"toUser" equalTo:user]; 
    [followerQuery whereKey:@"type" equalTo:@"follow"]; 
    [followerQuery findObjectsInBackgroundWithBlock:^(NSArray *followerActivities, NSError *error) { 
     if (!error) { 
      self.followersNumberLabel.text = [[NSNumber numberWithInteger:followerActivities.count] stringValue]; 
     } 
    }]; 
} 

- (IBAction)logout:(id)sender { 
} 




@end 
+0

где вы называете 'setFile'? Можете ли вы опубликовать код? –

+2

Где-то в методе 'updateUserStatus' вы вызываете' setFile: 'либо на неправильный тип объекта (' UIImageView'), либо указатель на объект, который был выпущен и заменен на 'UIImageView'. –

+0

Также установите точку останова в навигаторе точки останова на исключениях Objective-C. Это заставит приложение остановиться в более интересном месте, чем обычная(). –

ответ

2

В вашем ProfileViewController в методе updateUserStatus, вы вызываете метод setFile на объекте, который не знает его. А именно: a UIImageView. Убедитесь, что вы используете объект, который собираетесь называть этим методом.

UPDATE:

Там мы идем:

self.profileImageView.file = user[@"profilePicture"];

UIImageView, такие есть profileImageView, не имеет file свойство, так что вы не можете установить его. Дважды проверьте, что такое назначенный класс для установки файла.

+0

Спасибо. Класс был неправильным. Мне нужно было изменить его на PFImageView. Проголосуйте – Annette

Смежные вопросы