忍者ブログ
  • 2024.10«
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • » 2024.12
[PR]
×

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

【2024/11/22 12:03 】 |
JavaBronze試験
最近はJavaBronze試験の勉強をしています。

AndroidでJavaを始めた自分にとってはJavaの基礎知識をカバーするためにもこの試験は有用かと思い挑戦しています。BronzeをクリアしたらSilverへステップアップして行くつもりです。
資格試験対策の本と言語について解説してる本だとやっぱり切り口が違いますね。
PR
【2013/04/05 19:12 】 | 未選択 | 有り難いご意見(0)
エラーメッセージ
すぐに分からなかったエラーメッセージを書いて行くと後々複雑なプログラムになって行ったときに役に立つかな。と思いコレから書いて行こうと思います。

どんなくだらないのでも。

Duplicate declaration of method メソッド名
重複したメソッドを書いているよ。
予測変換の罠。

【2013/03/29 15:22 】 | Objective-C | 有り難いご意見(0)
デバイスの回転とビューの回転の制御 - (NSUInteger)supportedInterfaceOrientations
Objective - C
デバイスの回転とビューの回転の制御
shouldAutorotateToInterfaceOrientation: Deprecated in iOS 6.0.となりました。
汎用的なメソッドだったので現在(2013/3時点)書店で販売されている本のほとんどで使われてます。

iOS6からは
supportedInterfaceOrientations: を使うようです。

以下使い方
旧メソッド
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{
if (interfaceOrientation == UIDeviceOrientationLandscapeRight ||
interfaceOrientation == UIDeviceOrientationLandscapeLeft)
{
return YES;
}
else
{
return NO;
}

}



新メソッド
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

新メソッドでは対応したい向きの定数を返すだけ。複数の場合は"|"でつなげるだけのようです。

以下定数
UIInterfaceOrientationMaskPortrait // 通常
UIInterfaceOrientationMaskLandscape // 横向き
UIInterfaceOrientationMaskLandscapeLeft // 通常状態のデバイスを右に倒したとき(下が左側になったとき)
UIInterfaceOrientationMaskLandscapeRight // 通常状態のデバイスを左に倒したとき(下が右側になったとき)
UIInterfaceOrientationMaskPortraitUpsideDown // 通常状態と逆さま
UIInterfaceOrientationMaskAll // 全方向に対応
UIInterfaceOrientationMaskAllButUpsideDown // 逆さま以外

よっぽど変わった対応をさせない限り定数1つで済みます。(逆さまと横向きだけどか)
例にだした内容もUIInterfaceOrientationMaskLandscapeで済みます。
【2013/03/25 12:59 】 | Objective-C | 有り難いご意見(0)
deprecatedになったデリゲートメソッド
「iOS6対応!」って書いてあるから買った本「基礎から学ぶiPhoneアプリ開発」2013/3/1初版

Deprecatedになったデリゲードメソッドをちょくちょくのせていてつまづきます。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

これは
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
をつかいます。

変更された後ろの引数を見るとNSArray型になっています。つまりオブジェクト型の配列にnewLocationやoldLocationだったものが入ってますよ。ってことなんだと思います。

現在の位置情報を取得したいときにはnewLocationの中身をつかっていました。
旧デリゲートメソッドでは引数として受け取っていたnewLocationですが配列から引き出してから使わないと行けなくなりました。あとはいままでと一緒。

CLLocation *newLocation = [locations lastObject]; // 一番最後の要素にnewLocationが入っているようです。
CLLocationCoordinate2D coordinate = newLocation.coordinate;

【2013/03/24 20:59 】 | Objective-C | 有り難いご意見(0)
NSTimerを複数つかう方法
1つなら以下で
[NSTimer scheduledTimerWithTimeInterval:0.05
target:self
selector:@selector(mainLoop)
userInfo:nil
repeats:YES];

でも2つのタイマーを別々に処理したいときはどうするればいいのか?
NSTimer *mainTimer = [NSTimer scheduledTimerWithTimeInterval:0.05
target:self
selector:@selector(mainLoop)
userInfo:nil
repeats:YES];


[[NSRunLoop currentRunLoop] addTimer: mainTimer forMode:NSDefaultRunLoopMode];

NSTimer *subTimer = [NSTimer scheduledTimerWithTimeInterval:0.05
target:self
selector:@selector(subLoop)
userInfo:nil
repeats:YES];

[[NSRunLoop currentRunLoop] addTimer: subTimer forMode:NSDefaultRunLoopMode];

とすれば良いようです。
複数別々なタイマーとして使いたいときかな。


【2013/03/24 16:20 】 | Objective-C | 有り難いご意見(0)
前ページ | ホーム | 次ページ

忍者ブログ [PR]