7

しばらくの間、私を悩ませていた問題が発生しました。特に、私には意味が分からないためです。

オブジェクトが正しく宣言されているにもかかわらず、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"; を使ってみました。代わりに、これは「プロパティ updatedStatus がクラス Start1ViewController のオブジェクトに見つかりません」と言ってまったくビルドされません

私は以前にこの問題を抱えていましたが、.-表記の使用とセッターメソッドの使用を明示的に切り替えることで何とか動作するようになりましたが、それが機能した他のケースでも、メソッドと.notation 使用時の「プロパティが見つかりません」

問題のプロパティは単純な NSString であるため、他のクラスが NSString クラスについて知らないことが問題ではないでしょうか?

助けてくれてありがとう!=)

4

1 に答える 1

18

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

于 2012-06-12T07:53:58.333 に答える