2012-06-12 44 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也丢失了 –

相关问题