タグ

iOSとobjective-cに関するrochefortのブックマーク (14)

  • 【Objective-C】例外セーフコードによるメモリ管理には注意が必要 - なんだってやってみる

    2014-05-11 【Objective-C】例外セーフコードによるメモリ管理には注意が必要 Objective-C 【スポンサード リンク】 はじめに 例外は最近の言語の多くが提供している言語機能です。 例外はC言語にはありませんが、C++とObjective-Cにはあります。 実際、新しいランタイムではC++とObjective-Cの例外には互換性があります。 つまり、片方の言語が投げた例外をもう片方の言語のハンドラがキャッチすることが出来ます。 前に記事で書きましたが (エラーモデルを理解する)、例外は致命的なエラーで使うべきです。 しかし、それでも例外をキャッチして処理するコードが必要になることがあると思います。 例外が投げられることに介入できないサードパーティライブラリとのインターフェイスコードやObjective-C++コードなどです。 また一部のシステムライブラリは、例外が

    rochefort
    rochefort 2014/05/19
    fobjc-arc-exceptions
  • AppleのCore Animationプログラミングガイドを読んだメモ - Qiita

    Appleが提供しているプログラミングガイドは全部読んだほうがいいなーと思っています。 目下、興味のあるところから順次読み込み中。 今回は[PDF] Core Animationプログラミングガイドを読んだので、覚えておいたほうがいいところとかをピックアップし、自分なりの考察なんかを加えて書いています。 UIView/CALayerの基構造 画面になにかを表示しようとした時、使うのはUIViewかそのサブクラスを使うのが通常です。 addSubview:メソッドなど使って階層構造を成して構築していきますね。 普通はUIViewを使えば問題ありませんが、描画のパフォーマンスやちょっとした細かい演出などをしたい場合はCALayerを利用します。 やはりどういう構造になって画面に表示されているか、を知るのは大事なことですね。 UIViewは通常、レンダリング周りを担当するCALayerクラスを

    AppleのCore Animationプログラミングガイドを読んだメモ - Qiita
  • ダイナミックObjective-C (15) クラスとは何か(2) - クラス情報に直接アクセスする | マイナビニュース

    前回は、クラスを表す型Classが、obc_class構造体であることを説明した。今回は、実際にこの構造体の中身を触ってみることにしよう。Objective-Cというプログラミング言語は、ランタイムの記述言語であるC言語を完全に含んでいるため、簡単に自分の中身にアクセスすることができる。 Class型を取得する まず、Class型を取り出すことから始めよう。ランタイムにまで目を向けたおかげで、Class型もいろいろな方法で取り出すことができるようになる。 Objective-cでは、これまで説明してきたように、Classメソッドを使ってClass型を取得する。Classメソッドは、ルートクラスであるNSObjectで定義されているメソッドであり、すべてのインスタンスオブジェクトからClass型を取り出すことができる。また、クラスオブジェクトから取り出す、クラスメソッドとしてのClassもあ

    rochefort
    rochefort 2014/03/01
    objc_getClassList でクラス一覧が取れる
  • UITextField でのバリデーションのタイミング

    アプリによってはユーザーの入力値をバリデーションする必要がある場合があります。今回はバリデーションを行うタイミングについて書きたいと思います。 今回は以下のようなアカウント情報入力画面を考えてみます。 UITextField が画面に表示されている NavigationBar には「保存」ボタンが設置されている 入力値が「カラ」もしくは「空白文字」以外の場合を正常な入力とする UITextField への入力値が不正な値の場合には「保存」ボタンを無効化する UITextField のデリゲートでは不十分? UISearchBarDelegate には以下のような入力後に呼ばれるデリゲートメソッドがあります。 - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText しかし、UITextFi

    UITextField でのバリデーションのタイミング
  • GitHub - mixi-inc/iOSTraining: Training course repository for iOS app development

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - mixi-inc/iOSTraining: Training course repository for iOS app development
  • http://blog.f60k.com/initwithcoder_initwithnibname/

    http://blog.f60k.com/initwithcoder_initwithnibname/
  • yoshimasa niwa - ポップアップウィンドウをUIWebViewで使う

    UIWebViewはiPhone SDKのかなり重要なUIKitのクラスです。 ご存知の通りSafariが丸ごと入ってますが、しかし、ウィンドウを開く、ポップアップするというイベントは無効にされています。 <a href="somehere" target="_blank" />Open this link in new window</a> たとえば、このようなリンクがUIWebViewのなかで表示されてユーザがクリックしたとしても、何も起きません。 勿論、UIWebViewはかなり高度に抽象化されていて、いくつかのメソッドを呼ぶ事はできます。 そこで、完璧ではないのですがある程度この問題を解決する手段があります。 鍵となるメソッドは次のものです。 language:objc - (BOOL)webView:(UIWebView *)webView shouldStartLoadWith

  • iOSアプリからボリュームボタンが押されたことを検出する方法 - らっこのじゆうちょう

    たまにはiOSアプリ開発ネタを。 カメラアプリを作るとき、UIImagePickerControllerを使うとボリュームボタンでシャッターが切れるのですが、AVCaptureを使った場合はそれができないので、AVSystemController_SystemVolumeDidChangeNotificationを使って自分でボリュームボタンが押されたことを検出する必要があります。 ググるといろいろコードが出てくるのですが、そのままボリュームが変わってしまったり、日iPhoneの撮影時の音量変化が検出されてしまったり、少し試行錯誤が必要でした。 というわけで、以下がコードです。 2012.11.9追記 記述が抜けていた部分とバックグラウンド周りでの不具合があったのでコードを修正しました。 地図絶一門の[twitter:@TeamMOSA2]さん、ご指摘ありがとうございました。 //.h

    iOSアプリからボリュームボタンが押されたことを検出する方法 - らっこのじゆうちょう
    rochefort
    rochefort 2012/11/11
    ボリュームボタンの検知
  • Customizing the iOS Keyboard

    Our applications need input and the default iOS keyboards are often not optimally suited to providing the sort of data we want. When we find that we really wish the keyboard had some extra controls or want to help our users enter a specific set of symbols it is time to customize our apps’ keyboards. What controls the keyboard anyway? Our first exposure to different keyboard types probably comes fr

    Customizing the iOS Keyboard
    rochefort
    rochefort 2012/03/14
    keyboard customize
  • シンプルで簡単に 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
    rochefort
    rochefort 2012/03/05
    http通信ライブラリ
  • My365の作り方 〜iOS編〜

    My365は、まずiPhoneアプリとしてリリースすることにしました。 iPhoneアプリをリリースしたのはこれが初めてで、勉強しながらの開発となりました。(iPhoneアプリ開発自体では、ヒマボタンという素晴らしいアプリの開発経験があるのですが、このアプリは残念ながら僕のiPodにしか入っていません。) (よかったらこちらもどうぞ → iOS編, サーバ編, サーバサイドプログラム編 ) 勉強に使った書籍 「よくわかるiPhoneアプリ開発の教科書」は、Objective-Cの言語体系についてはほとんど触れられていませんが、Xcodeの使い方であるとか、iOSのフレームワークの使い方であるとかが、とても丁寧に説明されていて分かりやすいです。 4〜5時間くらいで読み終わります。このだけでとりあえずアプリが作れる風になれることは間違いないです。 「Objective‐C 2.0徹底解説」

    My365の作り方 〜iOS編〜
  • iOSのXML解析をJSONみたいに簡単に出来る XML Reader が便利 – Zero4Racer PRO Developer's Blog

    iOS のXML 取得、解析処理には基的ないくつかの処理があります。 XML の処理方式として、 SAX イベント駆動で行うXML解析 DOM インターフェース指向で、木構造として扱う方式 があり、iOSでは、 NSXML(標準, SAX, Objective-C) Libxml(標準, SAX, C言語) TouchXML, KissXML (外部ライブラリ、DOM) など、あるのですが、イベントを自分で記述したり、解析のためにオブジェクトをたどったりと、結構めんどうです。それを簡単にする方法があったのでご紹介します。 XMLは面倒なのですが、それに比べて、JSON は、一行で、 [cc lang=”ObjC”] NSDictionary *dic = [NSJSONSerialization JSONObjectWithData: data options: nil error:ni

  • [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
  • サルでもわかる Core Data 入門【概念編】 - A Day In The Life

    iOS でデータを永続化する方法の続きです。今回は Core Data を使ったデータの永続化方法について説明します。 記事では複雑で習得が難しいとされている Core Data について概念編と実装編の2回に分けて説明していきます。記事の全体的な流れとしては Core Data がどういったフレームワークかというところから O/R マッピングの説明、Core Data を使うメリット、Core Data フレームワークの概要、Core Data を使ったプログラムの例まで説明します。次の記事で実際に動くサンプルを作成します。 Core Data って何? Core Data はモデルオブジェクトを永続化するためのフレームワークです。もとは Mac OS X のために開発されたフレームワークで、iOS 3.0 から使用できるようになりました。 Core Data はデータの永続化に SQ

    サルでもわかる Core Data 入門【概念編】 - A Day In The Life
    rochefort
    rochefort 2011/10/20
    Core Data Programming Guide Glossary
  • 1