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
先日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 *型の変数に代入しても文句は言われな
The Clang frontend supports several source-level annotations in the form of GCC-style attributes and pragmas that can help make using the Clang Static Analyzer more useful. These annotations can both help suppress false positives as well as enhance the analyzer's ability to find bugs. This page gives a practical overview of such annotations. For more technical specifics regarding Clang-specific an
imp_implementationWithBlock()という、BlockからIMPを作り出す関数がiOS 4.3 or Lionから使えるようになったみたいなので、これを使って実行時にインスタンスメソッドを追加する実験 例えば、モーダルウィンドウをクローズした時に自動的にstopModalするコードは下のようになる。簡単。*1 /* CLANG_ENABLE_OBJC_ARC = YES */ #import <Foundation/Foundation.h> #import <AppKit/AppKit.h> #import <objc/runtime.h> ... NSApplication *application = [NSApplication sharedApplication]; BOOL (^windowShouldClose)(id, id) = ^(id self,
iOS5、Xcode4.3から使えるようになった。 「User Defined Runtime Attributes」を試してみました。 この仕組みを使えば、自分で作ったUIのサブクラスに特定の値を用意し、 実行時に設定される値をInterfaceBuilder(以下IB)であらかじめ決める事ができます。 今回は自作クラスではないですが、 「User Defined Runtime Attributes」の使用方法を以下の2つのViewを使って試してみます。 以下のようなView構成で、 一番上の「 うす黄色ビュー」から、IB上でsuperview.backgroundColorにアクセスし、 親の「フェイスブックっぽい色ビュー」を「実行時に赤い色に変える」という事をしたいとします。 その場合、まずは「うす黄色ビュー」を選択して、 「Runtime Attributes」にドット構文でアク
UITableViewCell の accessoryView というプロパティについてです。それほどマイナーなプロパティでもないので、実は当たり前なのかもしれませんが、最近便利さに気付いたので紹介します。 UITableViewCell には accessoryType というプロパティがあって、3種類のアクセサリが付けられます。 accessoryView は、これをカスタムな見た目にしたい時に使うぐらいのものだという認識でした。実際そうなのですが、よく考えたら UIView ならなんでも入れられるわけで、UISwitch だって入れられるんだなと。設定画面でスイッチがよく出てくるのですが、今まで contentView に addSubview していて、位置を合わせるのが面倒だと思っていました。でも accessoryView なら次のコードで終わりです。frame の origi
まえ別のブログで書いたのですが、こちらにも書いておきたかったのでメモっときます。 次のようなArrayの中にDictionaryがいくつか入っている構成のデータがあったとします。 [plain] ( { name = "wicket"; id = 1; }, { name = "oyabunn"; id = 2; }, { name = "apple"; id = 3; }, ) [/plain] ここから、id = 1 のdictionaryのデータを取り出す方法、 name = wicket のDictionaryを取り出す方法のお話です。 さて、まずid = 1 のDictionaryを取り出すときを考えてみます。 普通に考えて、id順に並んでいるようですからobjectAtIndex:関数を使って取り出すことができます。 では次に、name = wicket のデータを取り出す方法
CoreDataについて、幾つか小技があるのでメモ。 該当件数を取得する SQLに於けるcount文です。 [objc] NSManagedObjectContext *context = …; NSFetchRequest *request = …; NSError *error = nil; NSUInteger count = [context countForFetchRequest:request error:&error]; [/objc] 最大値取得 本来はNSExpressionDescriptionを使うべきなのでしょうが、ソースが長くなるので order … limit 1 で代用できます。 idの最大値を取る場合 [objc] NSManagedObjectContext *context = …; NSFetchRequest *request = …; NSSor
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く