不知怎的,我在XCode 4.0.2中遇到了这个错误,不确定是什么问题。
文件:HomeViewController.h
#import <UIKit/UIKit.h>
@interface HomeViewController : UIViewController <UITabBarDelegate>
{
UIButton *Button1, *Button2, *Button3;
}
@property (nonatomic, retain) IBOutlet UIButton *Button1;
@property (nonatomic, retain) IBOutlet UIButton *Button2;
@property (nonatomic, retain) IBOutlet UIButton *Button3;
.... other member functions...
....
@end
文件:HomeViewController.m
......
#import "RemoteServiceManager.h"
@interface HomeViewController()
{ //This is where the error happens: Expected Identifier or "(" before "{" token
RemoteServiceManager* serviceManager;
}
@end
@implementation HomeViewController
@synthesize Button1, Button2, Button3;
.... other member functions
....
@end
看起来它无法识别RemoteServiceManager。无论我在哪里使用serviceManager,它都会说HomeViewController没有名为serviceManager的成员。
是否可能是由XCode版本引起的?我在Mac OS X 10.6.7上使用XCode 4.0.2。
感谢。
答案 0 :(得分:0)
您无法将实例变量添加到私有类别。
将属性放在那里,并合成它们以获得变量以及内部getter / setter
@interface HomeViewController
@property (nonatomic, strong) NSString *privateProperty;
@end
@implementation HomeViewController
@synthesize privateProperty = _privateProperty;
@end
或者您可以将实例变量添加到类本身。
@implementation HomeViewController
NSString *privateVariable;
@end
还要记住。如果您在另一个文件中创建一个类别,那么您在该类别正文中声明的任何变量在所有实例中都将是静态的。绝对值得关注的事情。
回顾一下。您可以在主类别的界面中创建变量。或者在主要类别的实施中。
并且私有类别是为您添加原型到您的类,让文件的其余部分知道它们“将会/可用”。
答案 1 :(得分:0)
答案 2 :(得分:0)
您可能找到了答案,但我在这里为遇到同样问题的人发布了答案:
正如Daij所说,问题是由于编译器的版本,所以为了解决这个问题,你需要更改编译器设置:Build Setting > Build Options > Compiler for C/C++/ObjectiveC
Change value from "LLVM GCC 4.2" to "Apple LLVM compiler 4.2"
希望它有所帮助。