2012-06-12 72 views
6

我遇到了一個問題,一直在困擾着我 - 尤其是因爲它對我沒有任何意義。在轉發類中找不到屬性

Xcode似乎沒有找到我的對象的一些屬性,即使它們被正確聲明。此處一些代碼:

.h文件

@interface Start1ViewController : UIViewController { 
    NSString *updatedStatus; 
    NSString *updatedTime; 
} 
@property (retain, nonatomic) NSString *updatedTime; 
@property (retain, nonatomic) NSString *updatedStatus; 

並在.M各個合成

#import "Start1ViewController.h" 

@implementation Start1ViewController 
@synthesize updatedStatus, updatedTime; 

我想從一個物體保持上面的類的實例來訪問這些屬性:

#import <UIKit/UIKit.h> 
@class Start1ViewController; 


@interface PartyPickerViewController : UIViewController { 

IBOutlet UIDatePicker *datePicker; 
Start1ViewController *start1ViewController; 
} 

.M

-(IBAction)buttonPressed:(id)sender{ 

NSDate *selected =[datePicker date]; 
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init]; 
[timeFormatter setDateFormat:@"HH:mm"]; 
NSString *dateString = [timeFormatter stringFromDate:selected]; 
[start1ViewController setUpdatedStatus:@"Party"]; 
[start1ViewController setUpdatedTime:dateString]; 
[self.navigationController popViewControllerAnimated:YES]; 
} 

Xcode告訴我,setUpdatedStatus和setUpdatedTime不存在..以及他們不工作。我試過用 start1ViewController.updatedStatus = @「Party」; 取而代之,但是這根本不會生成「在Start1ViewController類的對象上未找到屬性updatedStatus」

我之前有過這個問題,那時候我通過使用。-notation和明確地使用setter方法幾次,但即使在其他情況下,它仍然工作,我仍然有方法和「屬性未找到」時使用警告。註釋

有問題的屬性是簡單的NSStrings,所以我懷疑它可能是另一個類不知道NSString類的問題?

在此先感謝您的幫助! =)

回答

18

Did you import the Start1ViewController.h in PartyPickerViewController.m? 因爲當你在你的接口@class中使用時,你只需向編譯器做出承諾,即有一個名爲Start1ViewController的類。 但之後,您需要在實施中導入Start1ViewController.h以創建Start1ViewController.h,這是其他類可見的屬性和方法。

+0

嗨,非常感謝!不能相信我錯過了,有時你只是通過查看自己的代碼而盲目。仍然奇怪的是,我在早期版本的類中工作,但#import也丟失了 –

相關問題