タグ

objective-cに関するteracy_junkのブックマーク (301)

  • Yohei Yoshihara's Home Page

    MySimplePlan More Detail Magquash More Detail Previous Next

    teracy_junk
    teracy_junk 2012/07/20
    NSSelectorFromStringを利用したSEL
  • performSelectorとパラメタ数 - Kazzz's diary

    JavaやC#のInvokeはそのオブジェクトの持つメタ情報からメソッド実行する(メッセージを送る)が、Objective-Cでそれに相当するのがNSObjectプロトコル(クラスではない)performSelector:メソッドだ。 メソッドの実態であるセレクタをメタ情報や文字列から生成して、メソッドに引き渡すパラメタと共にメッセージを送ることができる。 NSObject Protocol Reference [self performSelector:aSelector]; [self performSelector:aSelector withObject:arg1]; [self performSelector:aSelector withObject:arg1 withObject:arg2]; ところでperformSelectorメソッドのオーパロードは上の三つであり、これ以

    performSelectorとパラメタ数 - Kazzz's diary
    teracy_junk
    teracy_junk 2012/07/20
    tableView:cellForRowAtIndexPath:で行毎に表示させるセルを変える時に、行毎にメソッド作ってこれを利用すると簡潔になっていい感じ
  • 日付のデータを取り扱う - Objective-C プログラミング

    NSDate クラスに用意されている timeIntervalSinceDate メソッドを利用することで、ある日時からある日時までの経過秒数を取得することが可能です。 例えば、ある時点の日時を "pastData" という名前の NSDate 型で記録していたとします。 このとき、その "pastDate" の時点から現在までの経過秒数を取得したい場合には、次のようにします。 // 過去の時点 (pastDate) から現時点までの経過秒数を取得します。 NSTimeInterval passedTime = [[NSDate date] timeIntervalSinceDate:pastDate]; timeIntervalSinceDate メソッドは、自分自身の日時から引数で指定された日時を引いた日時を経過秒数で返すため、ある時点から現在までの経過秒数を取得したい場合には、まず現

  • 2011-04-16

    iPhone アプリのローカライズは多くの人が NSLocalizedString を使って行っていると思う。自分もそうなんだけど、今回 Xcode 4 でローカライズしようと思ってちょこっとだけハマったのでメモ。 [Update:2012/09/30] Xcode 4.5(もっと前からかも…)からはローカライズする言語を増やす手順がちょっと変わりました。 Xcode 4.5 でのローカライズ方法 まずはいつも通りの手順。 最初に NSLocalizedString を使ってコードを書く。こんな感じ NSString *titleString = NSLocalizedString(@"SettingTabItemTitle", @"Title of Setting Tab Item");次に genstrings コマンドを使ってローカライズに必用な文字列を抜き出す。 こんな感じにすると

    2011-04-16
  • iPhoneアプリ開発: UNIX時間、エポックからのミリ秒の取得

    タイムスタンプなどの用途に、 UNIX 時間( UNIX エポック[=1970年1月1日0時0分0秒]からの経過秒数)のミリ秒版 ( = UNIX エポックを起点としたシステム時間(システム時刻)をミリ秒で表現した値) を取得する方法です。 例えば Java では System.currentTimeMillis() といったメソッドでさくっと取得できるのですが、Objective-C ではいくつか注意点があります: 時刻取得関数 CFAbsoluteTimeGetCurrent() は2001年1月1日を起点としています CFAbsoluteTimeGetCurrent() は整数部分を秒とした小数値( CFAbsoluteTime 型 = double 型)を返します 1970年1月1日から2001年1月1日までの経過時間の値が定数 kCFAbsoluteTimeIntervalSin

  • iOSのテストを書くとViewControllerがコントローラーになれる話 - yaakaito::Blog

    Test, 雑感, iPad, iPhone, Objective-Cテストを書く事でおこるいい事は、いろんなところで解説されているので、iOS開発に限ったもので、わりと僕の中でキたViewControllerについて。ViewContollerがデータを所持しているケーステストをしていく上で課題になるアプリケーションテスト。iOSアプリケーションなので必ずビューが存在するわけですが、こいつを操作するViewControllerが非常に厄介な存在になってくる。少なくともApple公式のドキュメントのような書き方をすると、すぐに破綻する。例えば、こういうコードをよく書くと思いますが、この時に描画されるデータが正しいかをテストする為だけに複雑で手間のかかるアプリケーションテストをする必要があるでしょうか。 - (UITableViewCell *)tableView:(UITableView

  • BPStudy58 第1部 Web系エンジニアがiPhoneアプリ開発を1年続けてみて学んだこと

    ゆめみ提供のiPhoneアプリ Nailbook (http://nailbook.jp)につきまして開発全般を通じて得たiPhoneアプリ開発ノウハウ を紹介します。 関連リンク App Store - ネイルブック http://itunes.apple.com/jp/app/nailbook/id432831907?mt=8 ゆめ技:ゆめみスタッフブログ http://yumewaza.yumemi.co.jp/ ビープラウド著 Pythonプロフェッショナルプログラミング http://www.amazon.co.jp/Python%E3%83%97%E3%83%AD%E3%83%95%E3%82%A7%E3%83%83%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%

    BPStudy58 第1部 Web系エンジニアがiPhoneアプリ開発を1年続けてみて学んだこと
  • UIColor から RGB を取得する : Objective-C プログラミング

    iOS 4 以前で RGB を取得する場合 UIColor が保持している RGBA の値を取得するには、iOS 5 よりも前であれば、CGColorGetComponents 関数を使用します。 この関数は、RGBA の 4 つの値をそれぞれ CGFloat 型で順に const CGFloat* 型の C 配列で返すのですけど、RGB の値が一緒の場合(たとえば白 [R=1.0, G=1.0, B=1.0] や黒 [R=0.0, G=0.0, B=0.0] の場合)には、それらがまとまれて、それらと A との 2 つだけが帰ってくるのが厄介です。 戻される配列の数は CGColorGetNumberOfComponents 関数で取得することができるようになっているので、それらを使って次のように RGBA の値を取得する感じになると思います。 CGFloat red; CGFloat

  • Extracting rgb from UIColor

    teracy_junk
    teracy_junk 2012/06/27
    UIColor→RGB
  • 『文字の上寄せについて』

    TokoTokoSoftwareiPhone / iPadアプリを作っている団体「トコトコ」です 大学生二人でMacBookつかって頑張ってます!! Tips : [UILabelで文字を上寄せ(上付き)で表示する方法] UILabelは標準で文字を表示するときは 左に詰めたり 真ん中に寄せたり 右に寄せたり できますけど、 大きなUILabelに少しだけ文字を表示するとわかりますが ビューの真ん中に文字が表示されてしまいますよね? 上に文字を寄せたい場合 標準ではできないため自分で上に寄せなきゃいけません。 その場合「表示しようとする文字がどれだけの縦サイズになるかを計算して、UILabelのサイズを変更する」という手段が必要です。 手順は 1, UILabelのサイズからNSString の sizewithfontメソッドを使ってサイズを取得 2、 そのサイズでUILabelをリサイ

  • Objective-C初心者のためのiOS SDKコード例一覧~iPhone/iPadアプリ開発者が知らないと損するまとめ - @IT

    このページは、iOS(iPhoneiPad/iPod touch)アプリ開発者/プログラマのための、iOS SDKのAPIの使用コード例の記事を探しやすいようにしたリンク集です。フレームワークごとに表でまとめてあります。メソッドやプロパティなどObjective-CのAPIの使い方の参考にしてください。 @ITにコード例の記事が掲載しているクラス/プロトコル/関数やフレームワークだけしかリストには挙げていませんが、今後新たにiOS SDKの使用コード例がある記事が公開されたら、改訂していく予定です。 フレームワークの並び順は、標準の「iOS Developer Library」と同様にしています。 Frameworks Cocoa Touch Layer Event Kit UI Game Kit iAd Map Kit UI Kit New! Media Layer Assets Li

  • 消えたUIButton | SpiriteK Blog

    ユーザインタフェースは重要ですよね。 iPhoneがここまで広く支持されたのも、フリックやピンチといった独特の入力操作、それを視覚的にフィードバックするアニメーション効果によるところが大きいのではないでしょうか。 当然、これは我々アプリ開発者にも求められます。 Interface Builderでボタンやラベルを配置しておしまいではなく、タッチイベントに合わせて動的にUIを制御する必要が出てきます。 かくして、配置したはずのUIButtonが画面に現れない状況に遭遇するのです。 さまざまな原因が考えられます。それはもううんざりするほど。 表示する座標が間違っている hiddenプロパティをセットしている アフィン変換が何かおかしなことになっている 別のビューに隠れている 親ビューのクリップ領域外にある 背景色や画像等の設定ミスで親ビューの色と同化している そもそもビュー階層に正しく登録でき

  • デバッグコンソールを活用しよう | SpiriteK Blog

    XcodeのコンソールをNSLogの出力結果を確認するためだけの場所だと思っていませんか? ええ、筆者は思っていました。 Javaでの開発環境にEclipseを使っていると、コンソールは実質的に出力専用でした。標準入力を受け取ることもできますが、自分でそういうコードを書かない限りは使いませんし。 Xcodeはデバッガとしてgdbが使われており、コンソールはそのままgdbのコマンドラインインタフェースになっています。 Xcodeでアプリ実行中に一時停止ボタンを押すと、コンソールにgdbのプロンプトが出ます。ブレークポイントやクラッシュによって停止したときも同様です。 ここで対話的にコマンドを実行することができます。 gdbには呆れるほどたくさんのコマンドが用意されていますが、基的な操作はXcodeのGUIからも実行できるので無理に覚える必要はないと思います。 しかし、print-objec

  • 【予告】WWDC開催記念で『エキスパートObjective-Cプログラミング』を40%オフで提供します!(6/12-16) - 達人出版会日記

    『エキスパートObjective-Cプログラミング ― iOS/OS Xのメモリ管理とマルチスレッド』 (坂一樹著 達人出版会発行 PDF/EPUB) 先日、著者の坂さんより、WWDC2012開催記念で『エキスパートObjective-Cプログラミング』のセールをしましょう! とご連絡をいただきました。 というわけで、日時間の6月12日の0時ごろから6月16日が終わるごろまで、『エキスパートObjective-Cプログラミング ― iOS/OS Xのメモリ管理とマルチスレッド』を、通常価格1,600円(税込)のところを40%オフの960円で提供いたします! 週末にどうしてもObjective-Cをやらないと……という方はもちろん今すぐご購入されても構いませんが、そうでない方はこの機会をぜひご利用ください。よろしくお願いいたします。

    【予告】WWDC開催記念で『エキスパートObjective-Cプログラミング』を40%オフで提供します!(6/12-16) - 達人出版会日記
  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

  • Cocoaの日々: UIViewController でのメモリ管理見本

    iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど [2010-10-19訂正] [a][b]のケースでも deallocでの解放が必要なことが判明。それに適した記述に訂正してあります。 [関連情報] Cocoaの日々: viewDidUnload は呼ばれない(メモリ不足時だけ呼ばれる) UIViewController 内で使うオブジェクトのメモリ管理(作成と開放のタイミング)と初期設定についてまとめてみた。 実装見 4種類のインスタンス変数をもつケースについて考えてみる。 [a] nibから生成されるコントロール [b] 実行時に作成するコントロール [c] 他クラスへの公開プロパティ [d] 内部で使うインスタンス変数 ヘッダはこんな感じ。 @interface SampleViewController : UIViewCon

    Cocoaの日々: UIViewController でのメモリ管理見本
  • メモリ管理を理解する(後編)

    メモリ管理を理解する(後編):Cocoaの素、Objective-Cを知ろう(8)(1/2 ページ) iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基を理解しよう(編集部) メモリのretainやreleaseの定石 前回「メモリ管理を理解する」では、オブジェクトの所有権の取得と解放の基的な仕組みについて説明しました。 ここで紹介したようなごくシンプルなプログラムであれば、どこでretainし、どこでreleaseするかについてあまり迷うことはないでしょう。 しかし、一般的なアプリケーションの規模になると、多くのクラスやオブジェクトが複雑に関わってきますし、それらを多人数で分担して開発する場合もあります。 そうなると、releaseを忘れて不要なオブジェクトがメモリ上に溜まっていき、メモリをいつぶしてし

    メモリ管理を理解する(後編)
  • Objective-Cのクラス定義を理解しよう

    アクセサメソッドの自動生成 先ほどの例では、クラスの中にプロパティが1つしか定義されていませんでしたが、実際にはクラスにはいくつもの(時には数十個もの)プロパティが定義されることもあります。そのようなとき、すべてのプロパティにゲッターメソッドとセッターメソッドを定義していくのは、非常に手間が掛かる作業です。また、コピー&ペーストが多用され、コーディングミスの原因ともなります。 Objective-Cのバージョン2.0からは、プロパティのアクセサメソッドを自動生成させるためのコンパイラディレクティブが導入されました。以下に簡単な例を見てみましょう。 #import <Foundation/NSObject.h> #import <Foundation/NSString.h> #import <stdio.h> /* クラスの宣言部 */ @interface MyClass : NSObje

    Objective-Cのクラス定義を理解しよう
  • Core Graphicsでつくる自作UIコンポーネント入門

    Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLAtsushi Tadokoro

    Core Graphicsでつくる自作UIコンポーネント入門
  • 『第2回 iphone_dev_jp 東京iPhone/Mac勉強会』で vImage について発表・・するつもりで参加してきました - その後のその後

    めんどくさいタイトルですいません。。 僕がこの勉強会のATNDに気づいたころには120人の参加者枠もとっくにうまり、発表者枠も既に10人に達していたのですが、「時間がもし余ったら」と @k_katsumi さんの粋な計らいでLT補欠として参加させていただいた、というわけでこのタイトルになりました。 で、結果として時間はちょうどいい感じに10人の発表で終了時間となりLT枠はなかったのですが、いちおう資料とサンプルコードはつくってアップしておいたのでこちらにも載せておきます。 vImageのススメ View more presentations from 修一 堤 iOS 5 から追加された vImage について紹介しています。 資料の内容抜粋 vImageとは Accelerate.framework内のライブラリ iOSデバイスのハードウェア向けに最適化されていて高速 畳み込みや幾何変換

    『第2回 iphone_dev_jp 東京iPhone/Mac勉強会』で vImage について発表・・するつもりで参加してきました - その後のその後