Xcode 4.2 を使用して、私のアプリは iOS 5.0 シミュレーターで実行されます。iOS 4.2.1 を搭載した 3G iPhone で動作します。iOS 3.1.3 の iPod では動作しません。
これは、さまざまなチュートリアルから得たボイラープレート コードですが、iOS 3.1.3 デバイスでは、Default.png を表示した後、次の行が失敗します。
self.window.rootViewController = self.viewController;
ここで「インスタンスに送信された認識されないセレクター」を使用ykAppDelegate.m
:
#import "ykAppDelegate.h"
#import "ykViewController.h"
@implementation ykAppDelegate
@synthesize window;
@synthesize viewController;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Set the view controller as the window's root view controller and display.
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
コードをざっと見てみると、viewController が明らかにインスタンス化されていないことがわかります ( を除く@synthesize
)。my で宣言されているだけykAppDelegate.h
です:
#import <UIKit/UIKit.h>
@class ykViewController;
@interface ykAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
ykViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet ykViewController *viewController;
@end
これが iOS 3.1 で動作するように、私ができる小さな調整はありますか?