アサリの砂抜きは不要?

アサリの砂抜きは常識ですが、実際は潮干狩りで取ったアサリを良く洗えば直ぐ食べれます??

SQLiteがはやっている

2009-05-27 23:52:53 | 開発
RubyOnRailsを使用した開発で、DBとしてSQLiteを使ったが、iPhone内部のデータ保存にもSQLiteが使われている様だ(iPhoneフォルダーを見ていたらSQLiteが有った)。iPhoneのアプリデータ保存として普通に使われているようなので、少し勉強しようと思っていたら、本屋で「SQLite入門」を見つけたので買ってしまった。

SQLite入門 第2版
西沢 直木
翔泳社

このアイテムの詳細を見る


この本を見ると、FireFoxにも使用されているとの事。サーバ設定など不要で、IOライブラリィーのように簡単に使用できるので、簡易データベースとしてアチコチ利用されているようで、私もiPhoneアプリのデータ保存用に使用しようと!!

iPhone開発(4):加速度測定

2009-05-27 23:30:14 | 開発

一応、加速度を取得して、表示できるところまでは出来た。

<動作>
1)開始ボタンで測定開始
2)1秒タイマーで経過時間を表示
3)加速度数値(-1.0~+1.0)をXYZ別に表示
4)加速度をプログレスバーに表示
5)終了ボタンで測定終了

 

大体のソースは以下の感じですね。クラスの使用方法説明がなかなか見つけられないので、慣れるまではなかなか進みが遅いですが、こんなに少ないソースででそれなりの動作が出来るのは凄いことです。やる気が出てきますね。

<インターフェース部分>

@interface uTimerViewController : UIViewController {
 NSTimer *timer ;
 //
 IBOutlet UIButton *startBtn; // 開始ボタン
 IBOutlet UIButton *stopBtn; // 終了ボタン
 IBOutlet UILabel *dispTime; // timeの表示ラベル
 IBOutlet UILabel *dispXYZ; // 加速度の表示ラベル
 IBOutlet UIProgressView *progX ;// X加速度
 IBOutlet UIProgressView *progY ;// Y加速度
 IBOutlet UIProgressView *progZ ;// Z加速度
 IBOutlet UIView *graph ; //加速度グラフ
 //
 double accelX, accelY, accelZ; // 加速度
 bool  startFlg ;
 int count ; 
 
}
- (IBAction)stopTimer; // Speed==0
- (IBAction)startTimer; // mag変更
- (void)countUp:(NSTimer *)timer; // タイマーから呼び出される

<実装部分>

- (void)viewDidLoad {
    [super viewDidLoad];
 timer =  // タイマーの作成(動作開始)
 [NSTimer scheduledTimerWithTimeInterval:1.0  // 時間間隔(秒)
          target:self // 呼び出すオブジェクト
           selector:@selector(countUp:) // 呼び出すメソッド
           userInfo:nil  // ユーザ利用の情報オブジェクト
         repeats:YES]; // 繰り返し
 count=0 ;
 startFlg=FALSE ;
 
 // 加速度センサーの設定
 UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
 accelerometer.updateInterval = 0.02;
 accelerometer.delegate = self;
 
}
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
 // 加速度センサー表示
 if (startFlg) {
  accelX = acceleration.x;
  accelY = acceleration.y;
  accelZ = acceleration.z;
  dispXYZ.text = [NSString stringWithFormat:@"X%+2.1fY%+2.1fZ%+2.1f",
     accelX,accelY,accelZ];
  progX.progress=(accelX+1.0)/2.0 ;
  progY.progress=(accelY+1.0)/2.0 ;
  progZ.progress=(accelZ+1.0)/2.0 ;
 }
}

- (IBAction)stopTimer
{
 startFlg=FALSE ;
 count = 0 ;
}
- (IBAction)startTimer
{
 startFlg=TRUE ;
}
// タイマーから呼び出されるメソッド
- (void)countUp:(NSTimer *)timer
{
 if (startFlg) {
  count++ ;
  int sec = count % 60 ;
  int min = ((count - sec)/60 ) % 60 ;
  int hour = (count - sec - min*60)/3600 % 60 ;
  dispTime.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hour,min,sec];
 }
}


 


旅行グルメ

にほんブログ村 旅行ブログ 旅行グルメへ
にほんブログ村