2012-06-12 28 views
6

私はしばらくの間、私を悩ませている問題を抱えています。フォワードクラスでプロパティを見つけることができません

Xcodeは、正しく宣言されていても、私のオブジェクトのいくつかのプロパティを見つけられないようです。ここではいくつかのコード:

.hファイル

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

との.mでそれぞれのsynthesize

#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プロパティが見つかりません"

私は何らかの形でこの問題を抱えていました。 setterメソッドを明示的に何度か使用していますが、それが動作した他のケースでも、私はまだメソッドの警告を受け取り、.notationを使用すると "プロパティが見つかりません"を返します。

問題のプロパティは単純なNSStringです。他のクラスがNSStringクラスについて知らないことが問題になるのではないかと疑っていますか?

ありがとうございました! =)

答えて

18

Start1ViewController.hPartyPickerViewController.mにインポートしましたか? インターフェイス@classで使用するときは、Start1ViewControllerというクラスがあることをコンパイラに約束するだけです。 その後、Start1ViewController.hを作成するために実装にStart1ViewController.hをインポートする必要があります。そのプロパティとメソッドは他のクラスから見えます。

+0

こんにちは、ありがとう!私はそれを逃したとは信じられませんが、時には自分のコードを見て盲目になることもあります。私はクラスの以前のバージョンで働いていたが、#importも欠けていた –

関連する問題