タグ

iOSに関するabetomotomoのブックマーク (172)

  • Cocoaの日々: 10分でおぼえるBlocksの書き方

    iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど Blocksが使えるようになってはや数年。未だに書式が覚えられないわたし(あなた)の為に書き方をまとめてみた。 基型 戻り値 (^名前) (引数)(私が勝手に決めた)基型はこれ。これを覚えないことには始まらない。とにかくこれだけは覚える。 戻り値と引数は一般的なCの関数の書き方と同じなので、名前の書き方だけ (^名前) になったと覚えるのがいい。 (例)BOOL (^completion)(BOOL canceled) = ...;この基型を元に各場面でどう使うかを見ていく。 変数宣言・typedef宣言 変数宣言なら 戻り値 (^名前) (引数) = …;typedef宣言なら typedef 戻り値 (^名前) (引数);両方とも基型がそのまま使える。 (例)type

    Cocoaの日々: 10分でおぼえるBlocksの書き方
    abetomotomo
    abetomotomo 2013/12/25
    Blocksプロパティ宣言、メソッド宣言
  • ブラウザ開発で使用した超絶便利なオープンソースライブラリ10選 - showrtpath - iOSブラウザ開発日記

    2013-12-18 ブラウザ開発で使用した超絶便利なオープンソースライブラリ10選 こんにちはnasustです。Showrtpathブラウザ( http://showrtpath.com )の開発で使用したオープンソースを全て紹介したいと思います。 正直言って、このオープンソースが無ければ3倍近くの開発期間が延びたでしょう。ちなみにShowrtpathブラウザの開発期間は、大凡2人月ぐらいです。 BlocksKit https://github.com/pandamonia/BlocksKit このライブラリが無ければ、iOS開発の面白さは半減するでしょう。iOSのクラスにあるデリゲータと対応するBlocksのメソッドを追加してくれます。 [Button addEventHandler:^(id sender) { //Buttonが押された時の処理 } forControlEvents

    ブラウザ開発で使用した超絶便利なオープンソースライブラリ10選 - showrtpath - iOSブラウザ開発日記
  • [iOSアプリ開発] いまさら聞けないモダンな書き方 | DevelopersIO

    Xcode 4.4 から Objective-C が書きやすくなりました、という今更のいまさらな話ですが、ネット上に転がっている少し前のサンプルソースなどは古い書き方のものもあるようなので、今回はよく使う NSArray と NSDictionary と NSNumber の書き方についてだけ備忘録として残しておこうと思います。 NSArray インスタンスの生成 // 古い書き方 NSArray *oldArr = [NSArray arrayWithObjects:@"value1", @"value2", @"value3", nil]; NSMutableArray *oldMutableArr = [NSMutableArray arrayWithObjects:@"value4", @"value5", @"value6", nil]; // 新しい書き方 NSArray *n

  • iOS開発で使って便利だったオープンソースライブラリ

    追記: ※この記事は、「既にアプリ開発者である人」がより生産性を上げれることを願って書いた記事になります。 よく理解してない方がこの記事を参考にして「これを使ったら簡単になるらしいよ」という解釈をするための記事ではありません。 利用すれば便利になる「かもしれない」というものであることを理解しておいてください。 アプリの開発は早く、その上クオリティ高く完成させるのが良いと思います。 自分で、便利クラスなどを作成している人も多くいるとは思いますが、 iOSはオープンソースなライブラリが充実しているので、できるだけ利用をして 早く確実に開発を終わらせちゃいましょう。 ライセンスはそれぞれを参照して確認してください。 ARCへの対応有無もよく確認してみましょう。 ※見出しタイトルがリンクになっています。 SDWebImage インターネット経由で画像を取得し、UIImageViewへ表示するとき、

    iOS開発で使って便利だったオープンソースライブラリ
  • 【スマホ×HTML5】Web&ハイブリッドアプリ開発者ブログ

    【スマホ×HTML5】Web&ハイブリッドアプリ開発者ブログ このブログでは、HTML5+CSS3+Javascriptなどの情報を定期的に提供していきます。 運営企業:株式会社ニーロク(http://i26.jp/)

  • 警告「PerformSelector may cause a leak because its selector is unknown」への対処 - 甘いものが好きです

    セレクタを指定してオブジェクトにメッセージを送る処理について。 SEL sel = @selector(doSomething); if ([obj respondsToSelector:sel]) { [obj performSelector:sel]; } このようなコードをビルドすると、ARC有効時にperformSelector:の行について次の警告が出る。 PerformSelector may cause a leak because its selector is unknown 指示子@selectorによりセレクタを指定するのではなくSEL型変数を使用する場合にのみ警告が出る。実際、次のような場合には警告は出ない。 if ([obj respondsToSelector:@selector(doSomething)]) { [obj doSomething]; } if

    警告「PerformSelector may cause a leak because its selector is unknown」への対処 - 甘いものが好きです
  • 超簡単!iOSでたった数行でかっこいいローディング表示 – SVProgressHUD | DevelopersIO

    データ取得や重い処理を行っている間、表示しなければならないぐるぐる回っている例のあれです。 表示中は操作させないようにしたり、できればかっこいいやつがよかったりと実は意外と面倒なんですよね。 でも無駄にソース書きたくないし、でも表示しないわけにはいかないし、手軽に使えてなんかかっこいいやつないかな、...あった!! ってなわけで、たった数行でかっこいいローディングを表示するSVProgressHUDを紹介します。はまりどころもあるので、最後まで読んでいってください。 SVProgressHUDの特徴 SVProgressHUDの特徴として、 導入・使い方が簡単 かゆいところに手が届く ARC対応 MITライセンス があげられます。とにもかくにも使ってみましょう。 早速使ってみよう 開発環境は以下の通り。 Xcode 4.5.1 iOS SDK 6.0 サンプルプロジェクトの作成 XCode

    abetomotomo
    abetomotomo 2013/12/13
    ローディングなど
  • AFNetworking 2.0 - Qiita

    1.3系を使っていたのですが、2.0系にバージョンアップして 色々変わっていたのでよく使うものだけ、備忘録がてらまとめてみました。 Manager 1.3系ではAFHTTPRequestOperationを作成して、GET/POSTの設定等を 行っていましたが、2.0系からはそれを管理してくれるManagerが出来ました。 使い方は超簡単 AFHTTPRequestOperationManager* manager = [AFHTTPRequestOperationManager manager]; [manager GET:@"http://hoge/sample.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { // 成功時の処理. }]; } failure:^

    AFNetworking 2.0 - Qiita
  • AFNetworking その1 HTTPリクエスト | Cyber Passion for iOS

    通信ライブラリの定番になりつつあるAFNetworking。大変便利です。NSURLConnectionを使う機会はほとんどなくなりました。各クラスの使い方を説明していきたいと思います。 今回は、基的なHTTP通信の方法、JSONの取得、画像の取得について説明します。 AFHTTPRequestOperationクラス 代表的なクラスは、AFHTTPRequestOperationです。このクラスを使って基的なHTTP通信処理を行うことができます。 以下はhttp://www.yahoo.co.jp/へアクセスしてHTMLを文字列でNSLogに出力します。 NSURL *url = [NSURL URLWithString:@"http://www.yahoo.co.jp/"]; NSURLRequest *request = [NSURLRequest requestWithURL:

    AFNetworking その1 HTTPリクエスト | Cyber Passion for iOS
  • APIクライアントをAFNetworkingを用いてつくる手順 - Qiita

    「ちょっとこの Web API 使ってなんかつくってみるか」ということがたまにある(とくにハッカソンで)ので、手早くつくれるように僕なりの手順をまとめてみました。 「共通処理の実装」までは簡単な文字列の置換で済むので、 ファイルテンプレートにしておく とより簡単になりそうです(参考:Xcodeのファイルテンプレートを自作する)。 1. 共通処理の実装 APIキーをセットするメソッドの定義と実装と、オブジェクト初期化用のメソッド実装。 ヘッダ

    APIクライアントをAFNetworkingを用いてつくる手順 - Qiita
  • AFNetworking 2.0 Migration Guideを読みながらメモ - Object for cutie

    AFNetworking 2.0 Migration Guideを脱線メモしながら意訳中です。 AFNetworking 2.0 Migration Guide AFNetworking 2.0 is the next major release of AFNetworking, a delightful networking library for iOS & Mac OS X. As a major release, following Semantic Versioning conventions, 2.0 introduces several API-breaking changes with its new architecture, which adds support for NSURLSession and introduces a new serialization-ba

    AFNetworking 2.0 Migration Guideを読みながらメモ - Object for cutie
  • AFNetworking 2.0 add headers to GET request

    abetomotomo
    abetomotomo 2013/12/11
    ヘッダ設定
  • チーズくんの備忘録 [iOS]アプリを終了する処理について

    以前「[iOS]アプリを切腹させてはいけない。」という記事を書きました。 ですが今回は話がこれと180度変わります。 今回はこのexit関数を利用して終了するような話の流れとなりました。 その経緯はサルでき寺子屋のほうで「アプリをバックグラウンドにまわらせる処理について」として質問をさせていただきました。 解答を頂いたandantino190さんには深く感謝致します、ありがとうございました。 今回の発端は逆転裁判のiphoneアプリを起動した際に発生しました。 このアプリケーションには終了というボタンが起動後の画面にあり、この終了処理について疑問がわきました。 以前、終了処理を書こうとした際に上記の"アプリは切腹できない"という考え方の下で開発を進めてきたため終了ボタンなどもってのほかだと考えておりました。 ところがこのアプリケーションではしっかりと終了を行い、タスクトレイに残っているので

  • Objective-C のプロパティ属性のガイドライン - Qiita

    nonatomic と atomic の使い分けの指針は次のとおり: 参照型: メモリアドレスのみの書き込みなので、常にnonatomicでよい プリミティブ型: int, BOOL等ワンステップでの書き込みが可能: 常にnonatomicでよい 単一のスレッドからしかアクセスされない: 設計に気をつけつつnonatomic推奨 複数のスレッドからのアクセスがあり、long,構造体などサイズの大きい値: atomic推奨 (thx to @takasek) 複数のスレッドから同時に読み書きが行われる可能性があるプロパティには atomic を指定する。 atomic を指定することで getter と setter が排他的に実行されるようになり、値の書き込みに複数のメモリ操作命令が必要な型(構造体など)が中間状態で読み出されることがなくなる。 atomic を指定してもスレッドセーフにな

    Objective-C のプロパティ属性のガイドライン - Qiita
    abetomotomo
    abetomotomo 2013/12/11
    ARC
  • [Objective-C] 今さらですが、ARC超入門 (1) – shingohry.com

    今回はiOSアプリ開発ネタです。 iOS5で導入されてしばらくたってしまったARCですが、 今まで使ってきませんでした。 最近、ARCを使う機会があったので、 調べてみました。 ARCの基 ARC (Automatic Reference Counting) とは、 「自動リファレンスカウンタ」のことです。 コンパイルの際に「retain」や「release」などのメソッドをコンパイラが挿入してくれるもので、書かなければならないコードが減るという便利なものです。 しかし、「一定のルール」に従う必要があります。 retain, release, autoreleaseは書かない ・retain, release, autoreleaseはコンパイラが挿入してくれるので、コンパイラに任せます。(自分で呼んではいけません) ・deallocもコンパイラに任せます。(直接deallocを呼び出し

  • iPhoneからPOSTリクエスト - AFNetworking - 忘れないようにメモっとく

    iPhoneのHTTPリクエストが相当めんどくさい。 なにやら設定がごちゃごちゃしてるし、コールバックのDelegateを指定したり、非同期処理を書いたり。 ライブラリもいろんなのがあって、バージョンが違うとか、ARC解除しろだとか。(めんどぅ!) で、一番使いやすそうなのがAFNetworkingだった。 ここでも、バージョン1.xと2.0で使い分けが必要。 AFNetworking 1.x AFNetworking 2.0 Mac OS X 10.7 Mac OS X 10.8 iOS 5 iOS 6 フレームワークを追加するところから、それぞれの実装までを書いた。 フレームワークの追加 まずは例によって、必要なフレームワークを追加する。ここは両バージョンで共通。 以下の3つ。 Security.framework CFNetwork.framework SystemConfigura

    iPhoneからPOSTリクエスト - AFNetworking - 忘れないようにメモっとく
  • AFNetworking 2.0 のまとめ - Qiita

    概要 2.0になってから更にシンプルに記述できるようになっています。 下記が必須要件となっていますので導入前に確認してください。 Xcode 5以上 iOS 6.0以上 大きな変更点としてドキュメントにあるようにiOS7以降のサポートのみでよければAFHTTPSessionManagerのサブクラスを作成して実装することが推奨されています。 iOS6やそれ以前のバージョンをサポートする場合の選択肢としてAFHTTPRequestOperationManagerが用意されています。 ここでは主にAFHTTPRequestOperationManagerの使い方について触れておきます。 使い方 インストールもCocoaPodsで簡単に導入できますので、下記Podfileをプロジェクトのルート直下に作成してインストールしましょう。 AFHTTPRequestOperationManager* m

    AFNetworking 2.0 のまとめ - Qiita
    abetomotomo
    abetomotomo 2013/12/09
    AFNetworking 2.0
  • HTTPステータスを判定して UIWebView を生成する | dTblog | デザインとプログラムの境界をさまようブログ

    UIWebView はかんたんに HTTP 通信して Web ページを表示することができて便利なのだけれども、HTTP ステータスコードを見ていないため、iPhone 上に "500 Internal Server Error" とか出てくるわけです。これはカッコ悪い。 例えば、次のように UIWebView の loadRequest: を使った場合、通信エラー処理は webView:didFailLoadWithError: に委譲されるものの、HTTPサーバのエラー処理は委譲されず、処理するタイミングがありません。 - (void)viewDidLoad { UIWebView *wv = [[UIWebView alloc] initWithFrame: view.frame]; wv.delegate = self; wv.scalesPageToFit = NO; [self.

  • CoreDataの非同期処理 - UIスレッドを止めないために - Qiita

    データベースを扱うのに CoreDataは便利ですが、大量データの更新や保存をする際にはメインスレッドを妨害しないように別のスレッドで処理する必要があります。 ここでは CoreDataで非同期処理を行うための Tipsを紹介します。 元ネタは Multi-Context CoreData です。より詳しい解説や図解はこちらをどうぞ。 NSManagedObjectContext とマルチスレッド NSManageObjectContext は CoreDataのデータオブジェクトを管理するクラスですが、このクラスはスレッドセーフではありません。このため、マルチスレッドで CoreDataのオブジェクトを扱えるようにするにはスレッドごとに NSManageObjectContextを用意する必要があります。 iOS 5以降では initWithConcurrencyType: に NSPr

    CoreDataの非同期処理 - UIスレッドを止めないために - Qiita
  • マルチスレッドでCore Dataを利用する場合にはスレッドごとにManaged Object Contextを用意する - 甘いものが好きです

    Managed Object Contextはスレッドセーフではない Core Dataを利用するiOS Appの処理の一部をマルチスレッド実行するように修正したところ、実行時エラーが発生して強制終了するようになってしまった。このときデバッグコンソールには次のようなメッセージが出力された。 2012-01-13 14:09:16.441 [App名][12661:6c03] *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFSet: 0x27cbd0> was mutated while being enumerated.' ステップ実行によりエラー発生箇所を調べたところ、NSManagedObjectContextオブジェクトに対してexec

    マルチスレッドでCore Dataを利用する場合にはスレッドごとにManaged Object Contextを用意する - 甘いものが好きです