我遇到的问题一直困扰着我 - 特别是因为它对我没有任何意义。
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 = @ “甲方”; 相反,但这根本不会构建“在Start1ViewController类的对象上找不到属性updatedStatus”
之前我遇到过这个问题,那个时候我通过多次使用。-notation和明确使用setter方法切换它来工作,但即使在其他情况下它确实有效,我仍然会收到警告方法和使用.notation时“找不到属性”
有问题的属性是简单的NSStrings,所以我怀疑它可能是另一个类不知道NSString类的问题吗?
提前感谢您的帮助! =)
答案 0 :(得分:18)
您是否导入Start1ViewController.h
中的PartyPickerViewController.m
了?
因为当您在接口@class中使用时,您只需向编译器承诺有一个名为Start1ViewController
的类。
但之后,您需要在实现中导入Start1ViewController.h
,以使Start1ViewController.h
,其属性和方法对其他类可见。