iOSアプリをSwiftらしいコードで記述するために

iOSアプリをSwiftらしいコードで記述するために
【参考】untitled - iOS 7 のテキスト入力欄(UITextView)の問題について iOS 7のUITextViewのバグを1行で直す裏ワザ [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"UIDisableLegacyTextView"]; 解説 iOS 7にはバグだらけのUITextViewのほかに_UICompatibilityTextViewというiOS 6以前のUITextView(と思われる)クラスがあり、 メモ(Notes.app)など同様の不具合が再現しない標準アプリは_UICompatibilityTextViewが使われている。 そしておそらくこのフラグによってUITextViewをインスタンス化したときにどちらが使用されるかが変わる。 以下のようにmain.mあたりで設定すると有効にな
Objective-Cのオープンソースライブラリのコードを眺めていると __attribute__ という文に出くわすことがしばしばあります。 これは属性を表すキーワードで、普段そこまで使う機会がないのですが、調べるうちに何かと多人数の開発の時にはご利益がありそうな機能ばかりだと感じたので、まとめておきます。尚、使用環境はXcode5, ARCです。 何ができる? __attribute__はコンパイラディレクティブの一種で、変数、型、関数(Objective-Cではクラスやメソッドも)の属性を決めることができます。コンパイラによる静的チェックや関数の最適化の役に立ちます。 __attribute__の後にはカッコが二重に続き、二重括弧の中でコンマ区切りの属性リストを付与することができます。 __attribute__は変数、型、関数宣言の前後に置かれます。Objective-Cではメソッ
strong __strong修飾子に対応するプロパティ属性です。strong属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 weak __weak修飾子に対応するプロパティ属性です。__weak修飾子を持った変数と同様、weak属性のプロパティも、参照先のオブジェクトが破棄されたら自動的にnilが代入されます。weak属性を用いたプロパティはオーナーシップ権を持ちません。 weak属性は、delegateやOutletの変数に最適です。 なお、iOS 4では__weak修飾子が使えないため、プロパティのweak属性も使えません。この場合は、後述のunsafe_unretainedを使いましょう。 copy __strong修飾子に対応しますが、実際にはコピーオブジェクトが代入されます。copy属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 unsafe
iOS6からFacebook、微博(Weibo)、Twitterを統合したSocial.frameworkが追加されました。例によってAOuth認証などの面倒な手続きは全てiOS側で行なってくれるので投稿だけであれば、数行のコードで実装が可能です。 iOS5から追加されたTwitter.frameworkは廃止の方向になるので、新しく実装する場合はSocial.frameworkで実装した方がよさそうです。実装方法はTwitter.frameworkと同じような作りとなっているので簡単に移行できると思います。 SLComposeViewControllerでの投稿方法 プロジェクトのBuild PhasesのLink Binary with Librariesで「Social.framework」を追加します。 ヘッダにSocial.hをインポートします。 #import <Social/
これまでの記事はこちら: [iOS5] ARC (Automatic Reference Counting) : Overview [iOS5] ARC : プロパティ属性と使い方 [iOS5] ARC : Outletにはweakプロパティを使おう [iOS5] ARC : 循環参照 ARCまとめの最終回はAutoreleaseとキャストについてです。また、最後で簡単にですが、Xcodeの環境設定についても触れます。 Autorelease ARC環境下では、これまでのNSAutoreleasePoolは使えません。そうは言っても、別にAutorelease環境がなくなってしまったわけではなく、作法が少し変わったのですね。 まずは、参考までにmain.mを見てみましょう。 非ARC(マニュアルメモリ管理) int main(int argc, char *argv[]) { NSAuto
ここは管理人pigeon6と同じようなコンピュータとプログラムとアレゲが好きなおさるさんのためのサイトです。たぶん。 Xcode環境でデバッグを行う際に役に立ちそうな情報をまとめました。 Xcodeはgdbのフロントエンドとして動作するビジュアルデバッガを提供していますが、VisualStudioなどを使い慣れていると、ぱっと見足りない機能があるように見えるというか、「あれ、コレってどうやるの?」みたいな事が、いくつかあります。 このページでは、そんな経験を何度かした私が関連ドキュメントの一部を調べて、これはと思った機能を紹介します。そんなわけで、Xcodeのデバッガの使い方がそもそも分からないというような初心者には適さない内容ではありますが、何となく使っているだけでは分からない、あるいは見落としやすい内容をメインに書いています。 なお、Guard Malloc(libgmalloc)につ
UIView の位置やサイズを知るプロパティに frame と bounds があります。この frame とbounds の違いを簡単にまとめて見ました。 簡単にまとめると以下のようになります。 frame はスーパービューから見た座標 bounds はローカルのビューから見た座標 実際に親子関係のビューを作成して確認してみます。 ViewB は ViewA の中に配置されています。 [ViewA addSubView:ViewB] のような関係です。 この時の frame と bounds はそれぞれ以下のようになります。 ViewA.frame origin: 0,0 size: 550×400 ViewA.bouns origin: 0,0 size: 550×400 ViewB.frame origin: 200,100 size: 200×250 ViewB.bounds or
先日Xcode 4.3がリリースされました。Xcode 4.3ではclangのバージョンが3.1となり、instancetypeという型をサポートするようになりました。 返り値のid型の推論 instancetypeの話の前に、id型の返り値について考えます。Cocoaでは、+ allocや- initといったメソッドは軒並みid型の値を返すようになっています。基本的に、id型の値はどのようなオブジェクト参照型にも代入できることになっています。 しかし、clangは以下のようなコードに警告を発します。 NSString *myBlog = [[NSURL alloc] initWithString:@"http://takebayashi.asia/"]; + allocも- initWithStringも返り値がid型なので本来ならばNSString *型の変数に代入しても文句は言われな
iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど Blocksが使えるようになってはや数年。未だに書式が覚えられないわたし(あなた)の為に書き方をまとめてみた。 基本 基本型 戻り値 (^名前) (引数)(私が勝手に決めた)基本型はこれ。これを覚えないことには始まらない。とにかくこれだけは覚える。 戻り値と引数は一般的なCの関数の書き方と同じなので、名前の書き方だけ (^名前) になったと覚えるのがいい。 (例)BOOL (^completion)(BOOL canceled) = ...;この基本型を元に各場面でどう使うかを見ていく。 変数宣言・typedef宣言 変数宣言なら 戻り値 (^名前) (引数) = …;typedef宣言なら typedef 戻り値 (^名前) (引数);両方とも基本型がそのまま使える。 (例)type
はじめに iOS SDK登場から早4年近くが経ち、使い回しの効くUIコンポーネントや、煩雑な手順を楽にするスクリプト、自作するには難易度の高い技術をライブラリ化したものなどなど、今では多くの便利なオープンソースソフトウェアが公開されています。 本連載ではそんなオープンソースソフトウェアの中で、有用かつあまり日本語での情報が少ないものを中心にご紹介していく予定です。具体的な使用方法や、ソースの内容にも踏み込んで解説していきますので、ぜひ皆様の日々の開発にお役に立ていただければ幸いです。 トゥイーンライブラリを使用するメリット UIViewのアニメーションで指定できるイージングの種類は、 UIViewAnimationOptionCurveEaseInOut UIViewAnimationOptionCurveEaseIn UIViewAnimationOptionCurveEaseOut U
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く