忍者ブログ

[PR]

2025年06月18日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ログ出力

2008年11月19日
コンソールにメッセージを出す方法はNSLogを使う方法と、fprintfを使う方法の2つが動きます。例えばプログラムで使用中の整数iの値を実行中に確認したい場合には、

NSLog(@"i= %d",i);
fprintf(stderr, "i =%d\n",i);

どちらかを挿入しておけばこの行を通過したときの整数iの値がコンソールに出力されます。NSLogを使った場合には自分で作った出力用文字列だけでなく、日時などの情報が挿入されます。また、NSLogでは出力後に自動的に改行されますが、fprintfでは自動で改行されません。
PR

ライト版の存在意義

2008年11月19日
 有料版と比べると、各ページでの表示項目が2個のKigen Liteですが、有料版を買った後でも利用方法はあるかもしれません。一覧モード(List View)では最大で8個の期限が表示できるので、同じカテゴリ名、同じアイテム名にすれば…

あとで修正したいときはどこで修正すれば良いかわかりにくくて不便なのですけどね。

Kigenというソフト

2008年11月19日
買い置きしていたお菓子やインスタント食品など、けっこう保つものだからと安心していたら、食べようと思ったときには賞味期限を過ぎていた。恥ずかしながら私にとっては良くあることでした。そんなわけで考えついたのがこのソフトです。

コンピューターで表計算ソフトを使って管理するのも一つの方法ですが、それだと入力するためにコンピューターの前に買ってきたものを並べて入力しなければなりません。すでに冷蔵庫の中にあるものなど、わざわざ全部取り出してきて入力するのも面倒です。でもこれなら片手で持てるし、立ったままでも歩きながらでも入力できます。基本的に自分が便利に使ってやろうというソフトなので、他の人からは使いにくいソフトになっているかもしれません。

今後のバージョンアップで、アイテムリストでそれぞれのアイテムの合計数表示と、PC等で入力データを再利用するためのメール出力機能を追加する予定です。機能の実装はだいたい終わったのですが、バージョンアップでの上書きインストールで正常に動作するかの評価と、ヘルプの変更を進めています。今週中にはアップロードしたいですね。

テーブルに文字列を表示する

2008年11月19日
まずはともかくテーブルに文字列を表示してみたい、という場合。

  1. 新規プロジェクトでNavigation-Based Applicationを選び、適当な名前を付けてプロジェクトを作成する。
  2. RootViewController.mからnumberOfRowsInSectionという命令を探し、return 0;をreturn 1;と書き換える。
  3. 同じくRootViewController.mからcellForRowAtIndexPathという命令を探し、最後のreturn cell;の前に cell.text = @"あいうえお"; と書いた行を挿入する。
  4. これをそのままビルドし実行すると、テーブルの一番上の行に「あいうえお」と表示される。

文字列と整数の相互変換

2008年11月19日
 文字列を整数に変換する場合には、NSStringクラスのintValueを使います。

NSString *str = @"123";
NSInteger i = [str intValue];

とある場合には、iの値は123となります。
逆に整数値を文字列に変換する場合には、NSStringクラスのstringWithFormatを使います。

NSInteger i = 123;
NSString *str = [NSString stringWithFormat:@"%d", i];

とある場合には、

NSString *str = @"123";

と同じ結果になります。

SQLite3を利用するには

2008年11月19日
 自分のプログラムでSQLite3を使うには、Frameworksの項目に

libsqlite3.0.dylib

を既存のファイルを追加で加えておきます。場所はフルパスで

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/usr/lib/libsqlite3.0.dylib

です。実際に命令を行うmファイルに対応したhファイルの頭の部分に

#import <sqlite3.h>

を加えておきます。

2010年1月31日追記:
現在のiPhone SDK 3.1.2では自分でsqlite3データベースを開く以外に、Core Dataを利用して間接的にsqlite3を利用する方法もあります。他の環境で製作したデータベースファイルを持ってくる、といった用途には向きませんが、テーブル同士で連携をさせる場合などは、Xcodeのモデルエディタを用いてグラフィカルなデータベース構築が行えるなどの利点があります。Core Dataについては初めてのCore Data on iPhone(混沌のiPhoneアプリケーション工房、プログラミング内)にて簡単な解説をしていますので、そちらも参考にしてください。

アプリケーションの起動動作

2008年11月19日
アプリケーションを起動すると、まずmain.mにあるmainという名前の命令が実行されます。プロジェクトにInfo.plistがある場合には、これも読み込まれます。Info.plistのkeyのうちMain nib file base nameに設定されているファイルが読み込まれます。nibと書いてありますが、実際の拡張子はxibです。デフォルトではMainWindwow.xibが読まれます。

このファイルをInterface Builderで開くと、中に〜App Delegateという項目があります。これがこのアプリケーションを代表するクラスになります。

代表クラスの〜AppDelegate.mにはapplicationDidFinishLaunchingという名前の命令があります。プログラマがアプリケーション起動直後にそのアプリケーション固有の動作をさせたい場合には、main.mにではなくこの内部にコードを書くのが作法のようです。新規プロジェクトとして基本的なビュー1つのアプリケーションを作った場合、ここにはアプリケーションのメインウインドウに、1つのビューコントローラーに関係づけられたビューが加えられ、それが表示されるという命令が書かれています。

新規プロジェクトの作り方

2008年11月19日
 Xcodeを起動後、メニューから

 ファイル>新規プロジェクト...

の順で選ぶと新規プロジェクトの種類を選ぶダイアログが開きます。
ダイアログ左側からiPhone OSのApplicationを選べば右上にiPhone/ iPod touch用のプロジェクトがリストアップされます。初心者がまず使いそうな選択肢は下の4つになると思います。

View-Based Application
 1画面の単純なアプリケーションを作る場合に選択します。

Utility Application
 2画面からなるアプリケーションで、起動後の画面右下に表示されるボタンで2画面目にひっくり返るようなアプリケーションをしながら移動するアプリケーションを作成したい場合に選択します。

Tab Bar Application
 画面の切り替えを下にあるタブバーで行うことが出来るアプリケーションを作りたいときに選択します。画面の数はスタート時点では2個ですが後から追加することができます。

Navigation-Based Application
 データをリスト表示するアプリケーションを作りたいときに選択します。データが階層構造になっている場合にはこれを選びます。Kigenの基本バージョンはこれで作り始めましたが、後からTab Bar Applicationに鞍替えしました。