半年の間にいろいろありまして、
来年から就職します。鎌倉にあるWEB系の会社。Flasherとして採用です。Flashまともに使えるようになって、まだ日が浅いですが、この半年はかなり勉強になりました。
以前に公開したAR年賀状のソースがお恥ずかしい。
…といいつつObjctive-Cの投稿。
CocoaでSimpleVJなんていうソフトを作っていた癖に、iPhoneには非参入でした。
理由は、
iPhoneを持っていないのと、
折角Cocoaを覚えてきたのに、新たにUIKitフレームワークを叩きつけられて、萎えてしまった。
iPadを手に入れ、参入をきめました。UIKitも頑張ります。
self.hogeとhogeでは挙動が違う
何時の間にやらでた新文法、@propertyの挙動に少し戸惑ったので、メモ的に。
@propertyはsetter getterメソッドを自動で生成してくれるものらしいです。
例えば以下の用に、@property
TestHoge.h
#import <UIKit/UIKit.h> #import "PDFViewController.h" @interface TestHoge : NSObject <UIApplicationDelegate> { UIWindow *window; UIViewController *controller; } // 代入時に自動的にretainしてくれる。 @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) UIViewController *controller; @end
TestHoge.m
@implementation test07pdfAppDelegate // @propertyで指定した、getter, setterメソッドを生成。 @synthesize window; @synthesize controller; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIViewController *aViewController = [[UIViewController alloc] initWithNibName:@"HogeViewController" bundle:[NSBundle mainBundle]]; // ここ! これならretainしてくれるけれども、 self.controller = aViewController; // controller = aViewController; // これでは、メソッドではなく、直接変数にアクセスしてしまう。 // つまりメモリ参照で、retainしてくれないので、次の // [aViewController release]; // で参照がきえてしまう。 [aViewController release]; [window addSubview: controller.view]; [window makeKeyAndVisible]; return YES; } - (void)dealloc { [controller release]; [window release]; [super dealloc]; } @end