2013-08-29 29 views
0

這裏是我的代碼,我現在使用,但仍然得到各種錯誤:由於未捕獲異常而終止應用程序'NSInternalInconsistencyException?任何線索?

No visible @interface for 'HomeViewController' declares the selector 'getCount' 

而且

/Volumes/Lex/HomeViewController.h:12:12: Required for direct or indirect protocol 'UIPickerViewDataSource' 
/Volumes/Lexar/HomeViewController.m:15:17: Incomplete implementation 

我的代碼(.m文件)

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    PFUser *currentUser = [PFUser currentUser]; 
    if (currentUser) { 
     NSLog(@"Current user: %@" , currentUser.username); 
    } 
    else { 
     [self performSegueWithIdentifier:@"showLogin" sender:self]; 

     self.pickerView.dataSource = self; 
     self.pickerView.delegate = self; 
    } 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component 
{ 
    if ([self getCount] == 0) 
     return 1; 
    return [self getCount]; 
} 

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:  (NSInteger)component reusingView:(UIView *)view { 
    if ([self getCount] == 0) 
     return nil; 
} 

- (IBAction)logout:(id)sender { 
    [PFUser logOut]; 
    [self performSegueWithIdentifier:@"showLogin" sender:self]; 
} 
@end 

和標題

/// .h controller 

#import <UIKit/UIKit.h> 
#import <Parse/Parse.h> 

@interface HomeViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> 

@property (strong, nonatomic) IBOutlet UIPickerView *pickerView; 

- (IBAction)logout:(id)sender; 

@end 
+2

發佈您的代碼。 –

+0

請分享相關的代碼。 – Suryakant

+0

我沒有任何代碼,就是這樣。我只是通過故事板將選取器放置在控制器中,然後當我測試運行應用程序時,當我點擊未填充的選取器時拋出該錯誤 –

回答

1

正如您在評論中提到的那樣,您只需要放置UIPickerView ...但對於使用選取器視圖,您需要設置數據源(如UITableView),並且必須實施所有@required方法。

在選擇器視圖的數據源的協議中,有2種@Required方法

// returns the number of 'columns' to display. 
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 

// returns the # of rows in each component.. 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 

所以,你需要實現上述控制器(比如說MainViewController)兩大方法。不要忘記設置這個類作爲委託和數據源,以UIPicker觀點如下

ViewDidLoadMainViewController

self.yourPickerView.datasource = self; 
self.yourPickerView.delegate = self; 
+0

沒關係,我不知道我必須這樣做。因爲當我第一次把撿拾器放在裏面工作的很好。然後我刪除它並在我的代碼中改變了一些東西,當我把它放回去時,我不斷收到這個錯誤。我會試試看,讓你知道它是怎麼回事,謝謝! –

相關問題