タグ

Objective-Cに関するyumu19のブックマーク (32)

  • Objective-C/iOSで写真を選ぶアレ - ゆーすけべー日記

    最近始めたiOSプログラミングのコードのことも備忘録として、はたまたツッコミを乞うためとして書いていきたいと思います。 特にソーシャル系iPhoneアプリでよく使う写真を選ぶアレのコードです。何かボタンを押すと下からウニョンと出てきてカメラかライブラリかの選択肢を選ぶやつ。あれ、ActionSheetと呼ぶらしいです。 てなわけで、細かく分けて以下を実装してみました。 ActionSheetというかUIActionSheetを表示 ライブラリ、カメラそれぞれのケースを実装。といってもUIImagePickerControllerにお任せ 選択した写真をUIImageViewに表示 こういうUIがあったとして。 implementation部分のコードはこんな感じになりました。正直ARCまだよくわかってナス。 ViewController.m - (IBAction)showActionSh

    Objective-C/iOSで写真を選ぶアレ - ゆーすけべー日記
  • iPhoneで、アプリがローカルに保存したファイルの タイムスタンプを取得するコードを教えてください。

    iPhoneで、アプリがローカルに保存したファイルの タイムスタンプを取得するコードを教えてください。

  • Objective-C勉強したいならコレを読め2012秋

    前提「iPhoneアプリを作りたいなら」ではない。「売れるアプリを作る企画力」や「イケてるUIを作るデザイン力」なしに、「アプリ開発に必要なObjective-Cの技術力」だけあっても意味ない。それでもいい人向け。前提2巷のブクマされている「オススメ集」は自身の著書や身内のを薦めるためのポジショントーク的な選書がよくある。溢れかえる「分かりやすさ」を訴えるは必要はない。買うとしても1冊で十分。 分かりやすいじゃないと身につかないなら、結局作れるものは「その程度」のものに留まる。そして「その程度」を作れる人は既にうじゃうじゃいるからApple税を無駄にするだけ。公式ドキュメント日語ドキュメント - Apple Developer 日語化された公式ドキュメント。全てを読むのは難しいが、「Objective-C プログラミング言語」「Objective-Cによるプログラミング」を読め

    Objective-C勉強したいならコレを読め2012秋
    yumu19
    yumu19 2012/10/14
    ふむふむ...φ(._.) 公式ドキュメント充実してるよねー、あれiPadに入れて少しずつ読んでくのよさそう。「iOSデバッグ&最適化技法」気になってし買うかー。それ以外の本は全部会社にある。
  • Objective-Cの @property と @synthesize の組み合わせが何をやっているのかを解説 - 強火で進め

    改めて説明するまでも無いかと思ってたけど意外と知らない人は知らないみたいので解説を書いておきます。 @property と @synthesize の組み合わせは端的に言うと「setterとgetter(アクセッサメソッド)をコンパイルの前に生成させる」以上。 ※Objective-Cの場合、 @ で始まるものはプログラムでは無く、コンパイラへの指示となります。この様な指示をObjective-Cではコンパイラディレクティブ(Compiler directive)と呼びます。 詳細説明 setterやgetterはメンバ変数を直接扱わずにメソッド経由で代入やデータの取得をする為に定義するメソッドです。setterがデータを代入する時のメソッド、getterがデータを取得する時のメソッドとなります。 メンバ変数をメソッド経由にすることにより代入前にチェックを行って有効な値のときのみメンバ変数

  • NSTimerとNSThread(1/6):初心者のためのObjective-Cプログラミング入門 - libro

    ここまでのプログラムは、すべて「最初から順に処理を実行して、すべて終わったら終了」といったものでした。が、プログラムによってはそういう単純な処理の仕方しかしないわけでもありません。 例えば、先に非同期通信を使ってネットワークからデータを受信するサンプルを作りましたが、これなどは「後から処理が呼び出される」という仕組みになっていました。こんな具合に、プログラムによっては「一定時間後に処理が呼び出される」とか「同時にいくつかの処理を実行する」というような場合もあります。 まずは「一定時間後に処理を呼び出す」という場合についてです。これは、いわゆる「タイマー」と呼ばれる機能が用いられます。タイマー機能は、Foundationフレームワークの「NSTimer」というクラスとして用意されています。これは、指定した時間が経過したら、あらかじめ設定されている処理を呼び出す働きがあります。一度だけ呼び出し

  • 可変長引数でオブジェクトを簡単に受け取る : Objective-C プログラミング

    Objective-C では、状況によって個数の異なるオブジェクトを引数で受け取るメソッドを実装したいときに、わざわざ NSArray 型の引数を用意してもらわなくても、簡単に受け取れるようにすることができます。 そのためには、まずはメソッドのプロトタイプとして、次のように宣言します。 // メソッドの引数は可変長引数として宣言します。最後に nil で終わることを明示すると便利です。 - (void)setName:(NSString*)aName values:(NSString*)values, ... NS_REQUIRES_NIL_TERMINATION; このように、この例では aName で指定された名前と併せて、任意の数の NSString* 型の引数を取るメソッドの宣言ができました。 ここで、最後に "NS_REQUIRES_NIL_TERMINATION" というキーワ

  • メソッド設計で守るべき10個のルール - A Day In The Life

    以前メソッド設計の原則に関する記事を書きましたが 質問をすることで答えは変更されない原則 メソッドの引数はオペランドのみにする原則 それ以前にメソッド設計する上で最低限守った方がよいルールをまとめてみました。 プロパティをメソッドの戻り値代わりに使ってはいけない ファンクションメソッドでプロパティの値を変更してはいけない プロパティをリターンしない インスタンス変数やプロパティをメソッドの引数に渡さない 参照渡の引数をリターンしてはいけない 例外処理を GoTo 文の代わりに使ってはいけない 理由なく id 型をメソッドの戻り値にしない 特定メソッドの呼びだしが前提になったメソッドを作ってはいけない パブリックメソッドからパブリックメソッドを呼ばない プライベートメソッドからパブリックメソッドを呼ばない 以下その詳細です。 プロパティをメソッドの戻り値代わりに使ってはいけない メソッドが呼

    メソッド設計で守るべき10個のルール - A Day In The Life
    yumu19
    yumu19 2012/09/11
    ふむー。
  • variadic method (その3) - Kazzz's diary

    可変引数を使った任意のメソッドの呼び出しはようやく形になってきたが、C言語の経験値の低さ故にはまることが多い。 同メソッドだが、引数の型に合わせてva_listから値を取り出さなくてはならないため、va_listをメソッド間で引き渡す必要が出てくる。 NSObject+MethodUItil +(id)invokeInnerFor:(id) object byNamed:(NSString*)name firstArg:(void*) firstArg argList:(va_list) list { SEL selector = NSSelectorFromString(name); NSMethodSignature* sig = [object methodSignatureForSelector: selector]; NSInvocation* inv = [NSInvocati

    variadic method (その3) - Kazzz's diary
    yumu19
    yumu19 2012/09/11
    va?list
  • Objective-Cのクラス定義

    酔っぱらって買ってしまったiMacの行く末は... iPhone App 「巻き紙電卓」できました。よろしくね!! Objective-Cでは、クラスを以下の2つに分けて定義します。 インターフェイス(*.h):クラスのインスタンス変数とメソッドを宣言、スーパクラスを指定インプリメント(*.m):実際のクラス定義とメソッドを実行するコー ◆インタフェース(*.h) #import  "ItsSuperclass.h" @interface   ClassName  :  ItsSuperclass //(注)ItsSuperclassを省略するとルートクラスとなる。 { インスタンス変数宣言 //... 継承された型がそのまま利用できる。 } ± (型)メソッド宣言  // ....  クラスメソッド の場合:先頭に+ //      インスタンスメソッド の場合:先頭にー //    

    yumu19
    yumu19 2012/09/11
    va_listの宣言
  • 【Objective-C 】メソッドの可変長引数をそのメソッド内で別のメソッドの可変長引数として使用するための方法

    @iphone_dev_jpで話題になっていた、メソッドの可変長引数をそのメソッド内で別のメソッドの可変長引数として渡すための方法。可変長引数を扱う機会が少ないので、個人的にまとめとして残しておきます。

    【Objective-C 】メソッドの可変長引数をそのメソッド内で別のメソッドの可変長引数として使用するための方法
    yumu19
    yumu19 2012/09/11
    おぉ!
  • variadic method - Kazzz's diary

    Cのprintfのように可変引数つきの関数のことをvariadic functionと呼ぶ。 Variadic Functions - The GNU C Library Objectivce-Cのvariadic function(この場合はvaliadic methodか)はCに習ってシグネチャを以下のように書ける。 - (id)variadicMethod:(id) args, ...; 使う側は以下のように書ける。 [obj variadicMethod:arg1, arg2, arg3,....]; 可変長の引数はJavaやC#等の現代の比較的静的な型付け言語にも実装されており、非常に便利なのだが、実際にこの可変引数を使ったメソッドを自ら実装することを考えた場合、Objective-CはCと同様にva_マクロを使う必要があり、面倒である。 例えば現在書いているライブラリィのユーテ

    variadic method - Kazzz's diary
  • Objective-C でシングルトンパターン | Sun Limited Mt.

    Objective-C でシングルトンパターンのクラスを作成するメモです。 シングルトンパターンとは、クラスのインスタンスがひとつしか生成されないことを保証するデザインパターンです。NSUserDefaults などがシングルトンなクラスです。 シングルトンなクラスを作成するときのポイントです。 静的インスタンスを生成して、ひとつだけ作成したインスタンスを入れておく アップルが推奨しているクラスファクトリーメソッド名(sharedInstance や sharedManager) を使用して、インスタンス未生成時のみインスタンスを生成する インスタンスがひとつしか生成されないことを保証するために [[Hoge alloc] init] とされた場合の対策をしておく retain, retainCount, copyWithZone, release, autorelease をオーバライド

  • シンプルで簡単に HTTP 通信が出来るライブラリを公開しました - A Day In The Life

    iOS で HTTP 通信をするときはいつも ASIHTTPRequest を使っていました。 しかし残念なことに最近 ASIHTTPRequest の開発が終了してしまい Automatic Reference Counting(ARC) に対応する予定もないようなので自分で ARC に対応した HTTP 通信のライブラリを作成しました。 コードは github で公開しています。ライセンスはBSDライセンスです。 R9HTTPRequest 中身はただの NSURLConnection のラッパーです。コード量も少なく軽いライブラリです。 主な機能は以下の通りです。 HTTP GET POST PUT DELETE など HTTP の非同期通信 ※現在非同期通信のみサポートしています。 マルチパート POST(画像送信など) 自動リダイレクトのオン/オフ WSSE 認証のサポート R9

    シンプルで簡単に HTTP 通信が出来るライブラリを公開しました - A Day In The Life
  • [iOS5] ARC (Automatic Reference Counting) : Overview » iOS 開発ブログ Natsu's note - iOS 開発ブログ Natsu's note

    [iOS5] ARC (Automatic Reference Counting) : Overview 2011/11/16/|iOS|メモリ管理, iOS5, ARC iOS 5では数々の機能が追加されましたが、その中でも開発者の私たちにとって嬉しかったのはARC(Automatic Reference Counting)ではないでしょうか。そこで、ARCの概要から注意点まで、基的なところを何回かに分けてまとめていきたいと思います。 ARCとは? ARC (Automatic Reference Counting) とは、その名の通り、自動リファレンスカウンタ。リファレンスカウンタ方式のメモリ管理を自動で(正確にはコンパイラが)行ってくれるというものです。 ご存知リファレンスカウンタ方式のメモリ管理では、retain, releaseなどのメソッドを用いて生成したオブジェクトの保持状

    [iOS5] ARC (Automatic Reference Counting) : Overview » iOS 開発ブログ Natsu's note - iOS 開発ブログ Natsu's note
  • NSMutableArrayの使い方 - ちくわプログラマにっき

    // 空の配列の生成 NSMutableArray *a = [[NSMutableArray alloc] init]; NSLog(@"a = %@", a); //=> [] NSLog(@"a.count = %d", [a count]); //=> 0 [a release]; // 値を指定した配列の生成 a = [[NSMutableArray alloc] initWithObjects: @"first", @"second", @"third", nil]; NSLog(@"a = %@", a); //=> [first, second, third] // 要素の追加 [a addObject: @"fourth"]; NSLog(@"a = %@", a); //=> [first, second, third, fourth] // 配列による要素の追加 NS

    NSMutableArrayの使い方 - ちくわプログラマにっき
  • NSArrayについて

    NSArrayとは NSArrayはNSObjectを親オブジェクトとするオブジェクトの集合を格納するオブジェクトです。順番のあるデータの格納に向いています。 中に入れたオブジェクトはそれぞれ0から順番に番号が割り当てられて管理されます。番号の型はNSUIntegerです。 NSArrayの中にさらに別のNSArrayを入れたり、NSDictionaryを入れたりできます。 さらにそのNSArrayやNSDictionaryにNSArrayを格納して…ということで階層構造のデータを構築できます。 代表的なメソッド(目的別) オブジェクトを列挙してNSArrayを作りたい - initWithObjects: ファイルにNSArrayの内容を保存したい - writeToFile:atomically: ファイルの内容からNSArrayオブジェクトを作りたい - initWithConten

  • RubyエンジニアのためのObjective-C Blocks入門 - As Sloth As Possible

    書こう書こうと思ってたけど忘れてたのを、PerlエンジニアのためのObjective-C Blocks入門を見て思い出した。すいませんタイトルは便乗です。 試しに書いてみる Blocksってのが何者なのかはさっきの記事なりAppleのドキュメントなりを見てもらえばいいと思うんですが、まぁウケが良さそうなので付けたタイトルにのっとってRubyと比較してみる。 f = lambda {|x| puts "#{x}のこと以外は何も考えられない" } f.call("うどん") void (^f)(id) = ^(id x) { NSLog(@"世界の全てを敵に回しても、僕は%@の味方だ", x); }; f(@"うどん"); なんだ、そっくりじゃない。似てる似てる。 上がRuby版、下がObjC版。下は普通引数にはNSString*とかを使うと思うけど、まぁRuby版と挙動を合わせるためにidに

    RubyエンジニアのためのObjective-C Blocks入門 - As Sloth As Possible
    yumu19
    yumu19 2012/07/06
    ruby の each は NSArray の enumerateObjectsUsingBlock で。
  • FirstResponder:ファイルを削除したい - livedoor Blog(ブログ)

  • iOS5から使えるJSONクラスNSJSONSerialization - k_kinukawaの日記

    iOS4までは、JSONを使うためにはjsonframeworkなどの外部ライブラリを使用しなければならなかった。 iOS5には、NSJSONSerializationというクラスが加わり、これで外部ライブラリに頼ることなくJSONをゴネゴネできる。 基的な使い方として、 + dataWithJSONObject:options:error: NSDictionary/NSArray => NSData +JSONObjectWithData:options:error: NSData => NSDictionary/NSArray + isValidJSONObject: NSDictionary/NSArray => NSDataへ変換可能か? これに加えて、+ JSONObjectWithStream:options:error:や+ writeJSONObject:toStrea

    iOS5から使えるJSONクラスNSJSONSerialization - k_kinukawaの日記
  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう