iOS 4から使えるようになったBlocksは、余計なことを気にせず気軽に使えるとてもよい拡張機能で、僕も便利にガンガン使わせてもらっています。 ただ、表向きは親切なのですが、裏側の実装は変態的なことになっており、それを理解するまで疑問に思うことや不安を感じることが多々ありました。 というわけで、自分の復習もかねて、Blocksに関して色々調べた結果をここにまとめておきます。随時追記予定&つっこみ歓迎です。 Blockの正体は構造体 下記のようにBlock変数 myblock を定義したあとでブレークさせると、XcodeのVariables Viewでその中身を見ることができます。 「myblock = (struct __block_literal_1 *) 0xbfffd490」ということなので、myblock は __block_literal_1 という型の構造体のポインタ変数で、
iOS4 になって NSOperationQueue クラスの仕様に追加がありました。以前は並列処理しか出来なかったのですが mainQueue メソッドが追加になり逐次処理も出来るようになりました。変更点も含めて NSOperationQueue の使い方をまとめてみます。 NSOperationQueue クラスの使い方をきちんと理解していると NSOperation クラスの非並列実行モードと並列実行モードの使い方を間違えることも少ないと思います。 NSOperation クラスについては以下の記事で詳しく説明しています。 NSOperation 非並列実行モードと並列実行モードの使い分け NSOperationQueue と NSOperation の関係 NSOperationQueue と NSOperation を使うと、バックグラウンドで何か処理をしたい場合に一連の処理をま
「iOSアプリにソーシャルサイトでのシェア機能を3行で簡単実装できる」という謳い文句で有名な ShareKit を初めて使ってみたのですが、ひっかかった部分や、ドキュメントに書いてなくてソースから汲み取った部分などあったので、諸々メモしておきます。 ソース入手先に注意! ググるとここがトップに出てきて、このページ内にリンクが張られているソースのダウンロード先はここということになっていますが、最終更新が1年以上前とえらく古いものなので要注意です。 現在の本家はこちらのようです。 https://github.com/ShareKit/ShareKit ドキュメントはこちら。 https://github.com/ShareKit/ShareKit/wiki iOS 5 から追加された Twitter フレームワークにも対応済み 作っているアプリのビルドターゲットが iOS 5.0 以上なので
ARC & Blocks を使ったときの循環参照を避けるための現実的なサンプル。
こんにちは!うきょーです。UITableViewに実装されているdequeueReusableCellWithIdentifierと同等の機能を持ったものを開発したいんだけど的な話です。 dataSourceに似たのインターフェイスを持ってビューを実装するときに、不特定個数のものに対してインスタンスをすべて生成するわけにも行かないので、ある程度制御してあげる必要があります。 今回はUIScrollView上に構築していく前提になっています。シンタックスハイライターを作ろうとしているので、使い回して描画される対象になるのは、行数表示とコード一行分の表示です。 コードはいつも通りgithubにあります。 BGSyntaxHighlighter 注)ライブラリとしては未完成です 実装方法を考える さらっと思いつくところではリングバッファのようにしておけばよい気がしますね。 ATPagingVie
チェック1. なんでもかんでもヘッダーファイルでimportしていませんか? 例えば、こんなコードを書いていませんか? #import "OtherLibrary1.h" #import "OtherLibrary2.h" @interface Library @property (strong) OtherLibrary1* otherLibrary1; @property (strong) OtherLibrary2* otherLibrary2; @property (assign) BOOL flag; @end Libraryというクラスを作り、そこでOtherLibrary1とOtherLibrary2をpublicなpropertyとする場合、当然のごとくOtherLibrary1とOtherLibrary2のimportが必要なわけですが、なにも考えずにヘッダーファイルでO
Catégories Blog Développement iPad Iphone Mac Non classé Objective-C Php Serveur Tutorial Web Mes liens jeromekraft.fr MatC Bikes Blog Commentaires récents formation chatbot marketing (0 comments) dans Comment fonctionne un ChatBot avec de la NLPformation chatbot marketing (0 comments) dans Comment fonctionne un ChatBot avec de la NLPadmin (0 comments) dans [Objective-c] Application iPhone qui par
สล็อตเว็บตรง เว็บแท้อันดับ 1 เว็บตรงสล็อตวอเลท API ยุโรป ไม่มีขั้นต่ำ เว็บสล็อตของแท้ห้ามพลาด สล็อตเว็บตรง ติดเทรนด์อันดับ 1 ให้บริการด้วยระบบทันสมัยที่สุด เพราะมีการอัปเดตระบบสุดพิเศษอย่าง AI ที่ช่วยให้เล่นง่ายและสะดวก ปั่นสล็อตจากเว็บชั้นนำยุโรปโดยตรง ในส่วนของอัตราแตกและอัตราชนะสูงสุด สล็อต เล่นสล็อตลุ้นรับโบนัสสูงสุด แนะนำให้เข้ามาพิสูจน์ด้วยการสมัครสมาชิก เว็บตรง ได้เลย ชวนเพื่อนเล่นก็ไม่ผิดห
もうほとんどのかたが既知の内容と思いますが、まとめさせていただきます。 これらは全てコンパイル時に事が済む類のものなので、iOS5だけでなくiOS4でも当然使えるというのが嬉しいですね! Xcode4.4適用前 Xcode4.3までのこのコードを… #pragma mark - Private Category @interface Sample () @property (strong) NSNumber* i; @property (strong) NSNumber* c; @property (strong) NSNumber* f; @property (strong) NSArray* array; @property (strong) NSDictionary* dictionary; - (void)privateMethods1; - (void)privateMethod
皆さんObjective-Cを楽しんでますか? 巷ではObjective-Cの事を「変態言語」なんて呼ばれたりしているそうですが、Modern Objective-Cなんかも出てきて、すっかり「大衆的」な言語に近づいて来ました。 さてそんな訳で今回はiOS開発でよく使うNSUserDefaultsの話。 NSUserDefaultsはアプリ固有の設定情報を永続化する時などによく使われる便利なクラスです。 普通に使うとこんな感じ。 // 設定情報を保存 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setObject:@"hoge" forKey:@"Name"]; [userDefaults setBool:YES forKey:@"Setting"]; [userDe
1年半ほどコツコツと書きためてきた iOS アプリ開発 / Objective-C 関連の Tips をカテゴリ別にまとめてみました。 数が多いので、オススメのものを太字にしてあります。 (更新情報 2012.8.11)ちゃんと数えてみたら88個しかなかったので、20個ほど追加しました。 (追記 2013.10.1) 本記事をきっかけに秀和システム社よりお声がけいただき、書籍を執筆 させていただきました。iOS開発に役立つTips集です。ぜひ下記ページより 目次を見ていただき、興味のある項目がありそうであれば ご購入いただけるととても嬉しいです。 『iOSアプリ開発 達人のレシピ100』という本を書きました ##ライブラリ/フレームワーク ゲームアプリ向け UI コンポーネントセット "UIKitForGame" ゲームアプリをつくる際に便利な UIKit のカテゴリ/サブクラスの詰め合わ
The best way I have found to achieve this is with a Gesture Recognizer. Other ways turn out to involve a lot of hackish programming that imperfectly duplicates Apple's code, especially in the case of multitouch. Here's what I do: Implement a gesture recognizer that cannot be prevented and that cannot prevent other gesture recognizers. Add it to the map view, and then use the gestureRecognizer's to
GCD便利ですね。手軽にネストした非同期処理を書けるので、使いまくっています。しかし一直線にコードを書いていると見過ごしがちなのが、キャンセル処理です。時間のかかる処理を途中で止める場合や、別のUIViewControllerに遷移するから処理そのものが必要なくなった場合に、処理を止めたい場合があります。具体的には以下の様なケースがあると思います。 大きなファイルのアップロード中にキャンセルボタンを出したい 画面遷移をしたら、前の画面で進行中の画像ダウンロードはキャンセルしたい このような場合にGCDライクに使えて、しかもキャンセル処理ができのが組み込みクラスのNSBlockOperationです。早速使い方を見て行きましょう。weakのおかげでややこしいメモリ管理を考えなくて楽です。 -(void)heavyTask { if (!_queue) _queue = [[NSOperati
UIViewController のコンテナ機能 - Presentation Transcript UIViewController2011.11.19@nakiwo @property UIViewController *parentViewController;@property NSArray *childViewControllers;- (void) addChildViewController: (UIViewController *)childController;- (void) removeFromParentViewController; ViewController View View ViewController View ViewViewController View ViewController View ViewViewController View Vie
概要 Objective-Cは、Smalltalkを基礎とした非常に動的な言語で、コンパイラはオブジェクト自体について多くの情報を実行時まで決定しない (動的バインディング) 可能な限り多くの決定が、コンパイル時とリンク時ではなく実行時に行われる Objective-CはC言語を拡張したものなので、CocoaのC言語の関数とかも混ぜて使う。 オブジェクト指向プログラミングをサポートするために、(Smalltalkから派生した)構文とセマンティクスにかかわるいくつかの機能が拡張されている ↑ Cocoa OPENSTEPを基に開発されているMac OS X向けのフレームワーク(API) Objective-Cはコンパイル時ではなく実行時に決定できる事項が多い。これこそが、同じく動的な特性をフルに活用している、Cocoaフレームワークとベストマッチとなる ↑
iOS で SQLite を簡単に扱うためのライブラリ FMDB についてまとめる。 2017/1/22 本記事のサンプルを最新の Objective-C と Swift で書き直して記事にまとめました iOS で SQLite - FMDB の使い方 2017 FMDB とは? FMDB は SQLite を iOS の Objective-C で扱いやすくするための Wrapper ライブラリ。 GitHub で公開されている。 ccgus/fmdb インターフェースや使用感は JDBC や ADO.NET に近い。よってこれらを利用したことがあればスムーズに理解できるだろう。 FMDB の仕様準備 まず FMDB を利用したいプロジェクトで SQLite 用のライブラリを有効にする。手順は以下。 Xcode 左ペインのナビゲーションからプロジェクトを選択 右ペインに PROJECT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く