すべてのビューをコードで作成する利点がますますわかり、この開発スタイルに完全に切り替えることを望んでいます..そして、タイトルが示すように、私はいくつかの小さな問題を抱えています. いつものように、それは私がかろうじて見落としているものだと確信しています。私のコードを見て、提案をしてもらえますか? ARC が有効になっています。
-(id)init;
アプリのデリゲートでメソッドをチェックすると、メソッドがnilを返し、その理由がわかりません...self = [super init];
呼び出しは常に機能しているように見えますが、この場合はそうではありません。
main.m :
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([BCAppDelegate class]));
}
}
BCAppDelegate.mで:
@implementation BCAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
BCViewController *bcv = [[BCViewController alloc] init];
if (bcv == nil) { printf("it's nil\n"); }
UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[view setBackgroundColor:[UIColor blueColor]];
[bcv setView:view];
[self.window setRootViewController:bcv];
[self.window makeKeyAndVisible];
return YES;
}
BCViewController.h :
@interface BCViewController : UIViewController <UIImagePickerControllerDelegate>
{
/*some IVARS*/
}
-(id)init;
@end
BCViewController.mで:
@implementation BCViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { return nil; }
-(id)init
{
self = [super init];
if (!self) {
return nil;
}
return self;
}
- (void)loadView
{
/* No Code yet */
}