这是我试图在IOS中构建的第一个应用程序,但我遇到了一些问题。虽然我在这里读过类似的帖子,但我找不到答案。
这是我的课程:
Homeview.h
@interface HomeView : UIViewController{
NSString *parsed_date;
}
@property (nonatomic,retain) NSString *parsed_date;
@end
Homeview.m
@synthesize parsed_date;
parsed_date=[res objectForKey:@"date"];
我希望在我的主视图中正常打印的日期在其他视图中传递。
这是我的另一堂课:
Otherclass.h
#import <UIKit/UIKit.h>
@interface OtherView : UIViewController{
NSString* tracks_date;
}
@property (nonatomic,retain) NSString* tracks_date;
@end
Otherclass.m
#import "OtherView.h"
#import "HomeView.h"
@interface OtherView ()
@end
@implementation OtherView
@synthesize tracks_date;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
//preview value of other class
NSLog(@"Dated previed in OtherView: %@", HomeView.parsed_date); //HERE IS THE ERROR
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
这是我的错误:
property parsed_date not found on object of type "HomeView"
答案 0 :(得分:3)
问题是您没有使用HomeView实例。您需要实例化HomeView,然后您可以通过新实例访问该属性。
它应该看起来像这样:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
HomeView *homeView = [[HomeView alloc] init];
homeView.parsed_date = ...assign a value to the property
//preview value of other class
NSLog(@"Dated previed in OtherView: %@", homeView.parsed_date); //read the value
}
答案 1 :(得分:0)
如果你真的很确定,你已经正确地宣布了一切,但你仍然得到“未找到财产”,那么:
确保您的所有文件都在同一个文件夹中。
因为这就是发生在我身上的事。我有两个项目文件夹,其中一个用于测试。我不小心将一些文件从测试文件夹拖到我的主要xcode项目。它仅在使用旧属性时编译好,但始终会出现“找不到属性”错误,因为测试文件夹中的文件无法看到我添加到主项目中的新属性。
希望这有助于将来。