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"; 相反,但这根本不会说“在 Start1ViewController 类的对象上找不到属性更新状态”

我之前遇到过这个问题,那次我通过在使用 .-notation 和显式使用 setter 方法之间多次切换,以某种方式让它工作,但即使在它确实工作的其他情况下,我仍然收到有关方法和使用 .notation 时“找不到属性”

有问题的属性是简单的 NSString,所以我怀疑其他类不知道 NSString 类可能是一个问题?

提前感谢您的帮助!=)

4

1 回答 1

18

你是导入的Start1ViewController.hPartyPickerViewController.m?因为当您在接口中使用@class 时,您只需向编译器承诺有一个名为Start1ViewController. 但在那之后,您需要Start1ViewController.h在您的实现中导入以使其Start1ViewController.h, 它的属性和方法对其他类可见。

于 2012-06-12T07:53:58.333 回答