タグ : iPhone

Core Data で NSRangeException

古いモデルがシミュレータに残っていたのが原因?アイコン長押しでアプリを削除してやりなおしたら大丈夫になりました。

iPhone SDKの入れ替え

iPhone SDK 3.2.1から3.2.2に入れ替え。3.2.1をアンインストールしてから3.2.2を入れた。

アンインストールはターミナルで以下のコマンドを実行する。

$ sudo /Developer/Library/uninstall-devtools --mode=all

インストールはdmgファイルをマウントしてインストールスクリプトを実行するだけ。

うちのMac環境はSnow Leopardオンリーだから関係ないけど、Leopard用のiPhone SDKがダウンロードできなくなっていた。古い環境もダウンロードできればいいのに。

■入れ替えた後に「内部エラー」が発生する場合
error

XCode.plistを削除する。

$ rm ~/Library/Preferences/com.apple.XCode.plist

iPhone Core Dataについて

SQLを書くのは苦にならないのですがいいかげんSQLite3を直で使うのはよくないと改心し、Core Dataに関して調べてみました。

日本語ドキュメントっていまいち探せません。Google検索からしかリンクが見つからなかったのでどこから入ればいいのかしばらくうろついてしまいました。

タブバーに登録するアイコン

タブバーに登録するアイコンに関する覚え書き。

  • サイズは30×30。
  • 背景は透過。

ダウンロードできそうなリンク。

UITabViewControllerの使い方

UITabViewControllerを使ったアプリを作るまで。はじめてのiPhone3プログラミングにあったやり方まとめ。

  • XcodeでWindow Based Applicationを作る。
  • ClassisフォルダでUIViewControllerのサブクラスを必要なだけ追加する。xibファイルと.hファイルも同時に生成しておく。xibファイルはResourcesフォルダに移動しておく。
  • XXXAppDelegate.hを変更。UITabBarController *rootControllerを追加。

    @interface XXXAppDelegate : NSObject {
    UIWindow *window;
    UITabBarController *rootController;
    }

    @property (nonatomic, retain) IBOutlet UIWindow *window;
    @property (nonatomic, retain) IBOutlet UITabBarController *rootController;

  • XXXAppDelegate.mも変更。

    @synthesize rootController;

    - (void)applicationDidFinishLaunching:(UIApplication *)application {

    // Override point for customization after application launch
    [window addSubview:rootController.view];
    [window makeKeyAndVisible];
    }

    - (void)dealloc {
    [rootController release];
    [window release];
    [super dealloc];
    }

  • MainWindow.xibをダブルクリックしInterface Builderで開く。MainWindow.xibとタイトルのあるウィンドウ(Windowではない)に、「Tab Bar Controller」をドロップする。
  • XXXAppDelegateからTab Bar Controllerにコントロールドラッグし、rootViewControllerを接続する。
  • Tab Bar Controllerを開き、ステータスバー部分をクリックして属性インスペクタを開く。プラスボタンを押してタブを追加する。
  • タブ部分をクリックして属性インスペクタでxibを変更する。もう一回タブ部分をクリックして、イメージとタイトルを変更する。
  • 以上で一応完成。起動するとタブが切り替えられるアプリが完成。