2

不知何故,我在 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。

谢谢。

4

3 回答 3

0

您可能找到了答案,但我在这里为遇到相同问题的人发布了答案:

正如 Daij 所说,问题出在编译器的版本上,因此要解决此问题,您需要更改编译器设置:

Build Setting > Build Options > Compiler for C/C++/ObjectiveC
Change value from "LLVM GCC 4.2" to "Apple LLVM compiler 4.2" 

希望能帮助到你。

于 2013-04-16T16:21:21.527 回答
0

旧的 xcode 不能这样做,不。它确实知道类扩展,因为它附带了旧版本的 LLVM 编译器

于 2012-12-28T00:08:05.127 回答
0

您不能将实例变量添加到私有类别。

而是将属性放在那里,并合成它们以获得一个变量以及一个内部 getter/setter

@interface HomeViewController 

@property (nonatomic, strong) NSString *privateProperty;

@end 


@implementation HomeViewController 

@synthesize privateProperty = _privateProperty;

@end

或者您可以将实例变量添加到类本身。

@implementation HomeViewController
NSString *privateVariable;

@end 

也请记住。如果您在另一个文件中创建一个类别,那么您在该类别的主体中声明的任何变量在所有实例中都将是静态的。绝对值得关注。

回顾一下。您可以在主类的界面中创建一个变量。还是在执行主类。

并且私有类别是供您将原型添加到您的类中,这将使文件的其余部分知道它们“将/可用”。

于 2012-12-27T23:32:39.167 回答