忍者ブログ
  • 2024.11«
  • 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
  • 31
  • » 2025.01
[PR]
×

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

【2024/12/04 17:20 】 |
Xcode5DP
WWDCが6/10から始まりました。
Develper契約をしているので早速Xcode5DPをダウンロード。
授業の課題等全部これでやってしまおうと思いましたが、バグが多い。

・新しいクラスをつくるとクラスを見失う
・StoryBoard上に新しいViewControllerを作ると認識しない。

という何とも言えないバグに遭遇したのでとりあえず現行で開発しておこうと思います。
PR
【2013/06/13 18:20 】 | Objective-C | 有り難いご意見(0)
プロパティ宣言とシンセサイズ宣言
インスタンス変数をクラスの内で使いたいときにも
.hでプロパティ宣言
.mでシンセサイズ宣言をすることが推奨されるようになった。

今までは.hで
@interface ViewController : UIViewController{
int val;
}

.mで

- (void)viewDidLoad
{
val = 1;
}

コレだけで使えていた。

でも今は.hの@interface宣言のところで宣言することは推奨されていない。
その代わり.hでプロパティ宣言をする。
@property (nonatomic)int val;

.mでは
@synthesize val = _val;
とシンセサイズ宣言する。
このシンセサイズ宣言省略できます。
じつはしなくても_valにアクセス出来ます。

ただ便利なだけじゃないです。
自クラスで使うときもクラス名の指定が必要になりました。
this.val;
それか_valでを使います。


なんでこんなことをするようになったかというと
ローカル変数との差別化だそうで。
同じ名前のローカル変数とインスタンス変数が同じメソッド内に存在した場合にバグが出なくなるためのようです。
インスタンス変数を旧式で宣言していたとする。

-(void)viewDidLoad{
int val;
val=1;
}

こうなった場合インスタンス変数かローカル変数どちらに1を代入しているか分からないため
this.valや_valと書くように促すためのようです。

あってるかは自信ないです。
【2013/04/22 19:19 】 | Objective-C | 有り難いご意見(0)
objective-c 通信手順メモ
通信処理の流れ
1.NSURLを使ってアクセス先のアドレスを用意。

2.NSURLをもとに、NSURLRequestインスタンスを作成。

3.レスポンスを保管するNSURLResponseの変数を用意。

4.NSURLRequestとNSURLResponseを使い、NSURLConnectionインスタンスを作成し、通信を開始。

5.サーバーから結果が返ってきたら、NSURLResponseから必要な情報を取り出す。
【2013/04/14 23:01 】 | Objective-C | 有り難いご意見(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)
前ページ | ホーム | 次ページ

忍者ブログ [PR]