2011-11-29 34 views
0

當我嘗試運行它時,我收到一個錯誤,指出「在'UISlider'類型的對象上找不到'語義問題:屬性'文本' 「語義問題:在'UISlider'類型的對象上找不到屬性'text'

這裏有什麼問題?

這裏是頭文件中的代碼:

#import <UIKit/UIKit.h> 

@interface BIDViewController : UIViewController 

@property (strong, nonatomic) IBOutlet UITextField *nameField; 
@property (strong, nonatomic) IBOutlet UITextField *numberField; 
@property (strong, nonatomic) IBOutlet UISlider *sliderLabel; 

- (IBAction)textFieldDoneEditing:(id)sender; 
- (IBAction)backgroundTap:(id)sender; 
- (IBAction)sliderChanged:(id)sender; 



@end 

實現文件:

#import "BIDViewController.h" 

@implementation BIDViewController 
@synthesize sliderLabel; 
@synthesize nameField; 
@synthesize numberField; 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - View lifecycle 

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

- (void)viewDidUnload 
{ 
    [self setNameField:nil]; 
    [self setNumberField:nil]; 
    [self setSliderLabel:nil]; 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (IBAction)textFieldDoneEditing:(id)sender 
{ 
[sender resignFirstResponder]; 
} 

- (IBAction)backgroundTap:(id)sender 
{ 
    [nameField resignFirstResponder]; 
    [numberField resignFirstResponder]; 
} 

- (IBAction)sliderChanged:(id)sender 
{ 
    UISlider *slider = (UISlider *)sender; 
    int progressAsInt = (int)roundf(slider.value); 
    sliderLabel.text = [NSString stringWithFormat:@"%d",progressAsInt]; 
} 

@end 
+0

你在哪裏聲明你的'sliderLabel'? –

+0

有一個「@synthesize sliderLabel;」聲明在實現頁面上,在 - (void)viewDidUnload方法中,有一個「[self setSliderLabel:nil]; 」語句。 – pdenlinger

回答

3

我懷疑你的sliderLabel已被宣佈爲UISlider類的對象,當它應該是UILabel。你可以在頭文件中驗證sliderLabel的@property聲明嗎?

+0

謝謝。讓我通過粘貼.m,.h文件中的所有代碼給你更多的上下文。 – pdenlinger

+0

@pdenlinger:.m文件在這裏是不必要的。斯科特福布斯是正確的。你的'sliderLabel'屬性在它應該是'UILabel *'時聲明爲'UISlider *',並且合成的伊娃(你實際上正在訪問的東西(你應該修復它))繼承這個類型聲明。 –

+0

謝謝凱文和斯科特。將它從UISlider *更改爲UILabel,然後將滑塊連接到文件所有者和標籤作爲插座,並且它工作正常。再次感謝! – pdenlinger

0

我在NSManagedObject上有相同的消息。我的解決方案在目標的構建設置的「搜索路徑」中將「始終搜索用戶路徑」設置爲「否」 希望這也能起到幫助作用。

相關問題