For Want Of A Better Word

【Objective-Cが襲いかかってきた】IOS7+Xcode開発_TODOアプリ_作成メモ(1) プラスボタンのコード

      2015/04/18

よっしゃいくぜTODOアプリ(Xcode4.5向けだけど、5でやるぜ。なんとかなるだろ)

目標は下記。
[iOS]StoryboardでTODOリストアプリを作ろう(1/3) 準備編 MasterDetailApplicationとUITableViewについて | Developers.IO

ここで、ファイル上でボタンを定義するというのが初めて出てきて、その記述内容の理解にえらく手間取ったのでメモ。
全然進まないよー!!

コード

ナビゲーションバーにプラスボタンを表示している部分が下記。

最後の行は
・「self.navigationItem.rightBarButtonItem」がナビゲーションバーの右上。
・そこに「addButton」を設定。

じゃあその前、addButtonを作っているわけだけど

・[]で囲っている文は、php・jsで言う、文末に()。関数・メソッドの実行ですよということ。多分…
で左で変数を宣言しているから、右はインスタンスの生成とおもわれ。

# インスタンス生成構文

うん、インスタンス生成で良さそう。[]はメソッド実行!!覚え特。

alloc、initは書いてある通りだけど、こんどはinitじゃなくて

長い!!!。オブジェクト指向は、なんかメソッドとかクラスとか名前が長くなる印象。。

initではなくて「initWithBarButtonSystemItem

ithBarButtonSystemItem:target:action:

  • (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action

(参考)
UIBarButtonItem Class Reference

・第1引数:UIBarButtonSystemItem
・第2引数:(id)target
・第3引数:(sel)action

    • UIBarButtonSystemIte
    • (id)target:
    • (sel)action :

idとか、selとかしらねーよ… targetとactionも良くわかんねーよ。。
objective-Cとiosが一気に襲いかかってきた感じ。

  • UIBarButtonSystemItemはどんな類のボタンを表示するかを指定する。いろんなのがある。
  • id = Objectのスーパークラス。どんな型でもOK。
  • sel セレクタで指定したメソッド名。@selector(メソッド名)で取得できる。
  • target action はTarget-actionデザインパターンというのがあってその中の要素。

詳細は後半のリンク先を参考のこと…

そうすると、先のボタン作成の一文は

UIBarButtonSystemItemAdd(プラスのマーク)ボタンを作って、
クリックされたら
self(これを宣言しているクラス)の
insertNewObject:を実行しなさいということ。

※ちなみに、insertNewObject:の「:」は引数が一つという事らしい。。

【参考リンク】

(Bjective-Cの文法メモ)
(コマンドからボタンの生成・どんな種類あるの?)
(@selectorってなんだ、cssみてーだな)

(関数の別名。jsみたいに関数を渡すとき場合は、objcではこの「sel型」を使うというイメージか)

(initWithの引数定義に出てくるtarget、atcionとは)

“target (to whom) and action method (what message to send).”
“誰に何のメッセージを送るのか”

    • Targetはオブジェクト action methodはメソッド名単純にターゲットがオブジェクト(クラス)、メッセージがメソッドということで良いみたい。

他メモ

id型ってなんや
  • 宣言時に*はいらない。どんなクラスのオブジェクトでも代入することができる、動的オブジェクト型。JavaのObject型tのようなもの。。。なんのためにある?開発時に意識するレベルではよく分からん。いろんなオブジェクトが入ってくると想定される部分に使う?開発者が意識して使うことはないのかな?

 - ios, objective-c, xcode

  関連記事

objective-c
【iOS7+Xcode5】FMDBサンプルアプリの構造確認②

前回の続き 【iOS7+Xcode5】FMDBサンプルアプリの構造確認① &#8 …

objective-c
IBoutletとIBaction、その違い

埋もれていたので抽出 IBOutletとは、パーツ自体をプログラムで定義した変数 …

no image
ボタンを角丸(iphone開発)(iOS7 + Xcode5)

xcodeでボタンを置いたら四角かった。 丸くしたい。流行りじゃないのかもしれな …

objective-c
【iOS7+Xcode5】FMDBサンプルアプリの構造確認①

DBの使い方を確認して、最終的には下記サイトを参考に作ったメモアプリを修正する形 …

no image
【ios+xcode】SQLite用クライアント LitaのダウンロードURL

こことか iOS で SQLite – FMDB &# …