我是Objective-C的新手,目前正在阅读一本书中的教程,该教程向我展示了如何向现有窗口添加新视图和视图控制器。
这本书告诉我:
“将TestViewController实例添加到您的代码中并将其标记为IBOutlet。我们将它放在app委托类TestAppDelegate中。在TestAppDeligate.h中,新代码将如下所示:
IBOutlet TestViewController* testViewController;
“
因此,当我更改我的app delegate header-file以包含这行代码时,它看起来像这样。
#import <UIKit/UIKit.h>
#import "TestViewController.h"
@class views_and_controllersViewController;
@interface views_and_controllersAppDelegate : NSObject
<UIApplicationDelegate> {
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet
views_and_controllersViewController *viewController;
IBOutlet TestViewController* testViewController;
@end
然而此时Xcode却向我抛出了错误:
无法在@interface或@protocol
中声明变量
以及警告:
iboutlet属性只能应用于实例变量或属性
我没有注意到头文件中的所有其他实例声明都以@property标记为前缀。这需要吗?如果是这样的话,那么这本书就会忽略这一点,期望我已经知道Obj-C期待这个吗?
Anywho,我在这里做错了什么?
答案 0 :(得分:1)
你的IBOutlet TestViewController * testViewController需要在@interface部分内移动。