我在这里看到了这篇文章(链接如下),它说明你可以替换:
[window addSubview: someController.view];
使用:
self.window.rootViewController = self.someController;
My Base SDK for All Configurations设置为Latest iOS(目前设置为iOS 4.2),但是当我尝试构建项目时出现此错误:Request for member, 'mainMapView' in something not a structure or union.
使用注释掉的addSubview添加它:但工作正常。 这是有问题的代码......
#import "MakeView2AppDelegate.h"
#import "MainMap.h"
@implementation MakeView2AppDelegate
@synthesize window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
MainMap *mainMapView = [[MainMap alloc] initWithNibName:nil bundle:nil];
//[self.window addSubview:mainMapView.view];
self.window.rootViewController = self.mainMapView;
[self.window makeKeyAndVisible];
return YES;
}
答案 0 :(得分:4)
这是因为您正在寻找mainMapView
作为应用代理的property
。将该行更改为:
self.window.rootViewController = mainMapView;
然而,假设MapView
类继承自UIViewController
。是吗?
答案 1 :(得分:2)
在您的示例中,您正在调用self.mainMapView,但除非mainMapView是类的属性,否则这将无效。如果你删除“自我”。从它,它将工作正常。
答案 2 :(得分:1)
从iOS4开始,这是Xcode4模板中的默认行为。使用addSubview以向后兼容可能更好,因为其他方法不适用于iPhone OS 3.x
答案 3 :(得分:0)
你没有为mainMapView创建属性。
所以你不能写self.mainMapView
你必须使用mainMapView。
获取更多帮助,请看:
Understanding your (Objective-C) self
http://useyourloaf.com/blog/2011/2/8/understanding-your-objective-c-self.html