Xcode自动合成属性导致错误

时间:2013-01-20 03:46:41

标签: xcode properties xcode4.5

Xcode有关于Autosynthesized property 'ViewController'的问题和类似于'window'的问题,并告诉我属性是在BSAppDelegate.h中声明的。我不知道如何解决这个问题,即使这里有几个人试图解释下划线问题。当我省略下面提到ViewController或窗口的任何行时,我的应用程序将无法编译。

//
//  BSAppDelegate.h
//

#import <UIKit/UIKit.h>

@class BSViewController;

@interface BSAppDelegate : UIResponder <UIApplicationDelegate>{
    UIWindow *window;
    BSViewController *viewController;
}


@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) BSViewController *viewController;

@end

1 个答案:

答案 0 :(得分:1)

声明属性时,不需要在实例变量部分声明相同的变量。换句话说,这应该没问题:

@interface BSAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) BSViewController *viewController;

@end

如果您的应用程序无法像这样编译,您是否有第二个@interface部分和/或您是否在实现文件中有@synthesize语句?从Xcode 4.4开始,您不再需要@synthesize语句,但如果您没有明确地合成属性,那么Xcode将使用前面的下划线(_window或_viewController)来合成它们。以下是包含更多信息的链接:Automatic Property Synthesis With Xcode 4.4

相关问题