プログラミング

Xcode3.x とXcode4.xを簡単に切り替える

今更Xcode3.xがいるかどうかは微妙だが、Xcode3.xとXcode4.xを頻繁に切り替えるためのAutomatorワークフローなぜこんなのが必要かというと、SDKとかデフォルトコンパイラの違いがビルド結果に影響を与えるから Terminalからxcode-selectを叩けば良いんだけど…

PersonalForgeを使おう!

PersonalForgeてのがSourceForge.JPに出来てるんだが、これがまたお手軽お気楽でたまらない。 基本的に個人が個人的に個人的なgitリポジトリをいくつでも好き勝手にリモートに持てちゃうサービス。 必要なのはSourceForgeのアカウントのみ。これも登録するだ…

超テキトーに弄ってみる

あれをアレな感じであれした場合 あれってのは、ほら、Automatic Reference Counting [ARC]? #import <Foundation/Foundation.h> #define kCapacity 1024 @interface ObjectStack : NSObject { id stack[kCapacity]; NSInteger head, foot; BOOL isEmpty; } - (void)push:(id)object; </foundation/foundation.h>…

BooksExporter 1.4をリリースしました

BooksExporter 1.4をリリースしました。http://sourceforge.jp/users/masakih/pf/BooksExporter/files/?id=299 変更点は 前回使用したエクスポートタイプを記憶するようにした Amazonのデータ参照を自動で行わないように出来るようにした。 エクスポート時に…

げんごをきりかえます! for Xcode4

げんごをきりかえます! - masakihの日記のXcode4版 アグリゲートターゲットを追加します。 元のターゲットを関連づけ。 実行ファイルを設定。 他言語用引数を設定。

トリプルアーキテクチャバイナリ For Xcode4

Xcode4 で i386 x86_64 ppcユニバーサルバイナリを作るには まず http://blogger.splhack.org/2011/03/xcode4powerpc.html ここを参照してppcバイナリを作成出来るようにして、 こうする。 さらにi386,x86_64にはLLVM(LLVM GCC)を使ってppcにはGCCを使うよう…

やっとビルド出来た

Xcode 3.xから持ってきたプロジェクトが64bitでビルドすると The selected run destination is not valid for this action. てでて悩んでたんだけど、やっとできた。多分こう。 Xcode 3.xから こう直す まあ、いってる事は同じなんだよね。

BooksExporter 1.3 をリリースしました

BooksExporter 1.3 をリリースしました | masakih's blog BooksExporterの使い方 | masakih's blog

単なるメモ

ブランチ上。 トランクからブランチへマージ svn merge trunk ブランチ上。 トランクからマージ済のリビジョンは svn mergeinfo trunk ブランチ上。 トランク上にマージすべき変更があるか svn mergeinfo trunk --show-revs eligible トランク上。 ブランチ…

NSTextFieldの変更を強制的に確定させる

continuousでないNSTextFieldを編集中にボタンクリックなどのファーストレスポンダの移動が伴わないアクションを起こしても、NSTextFieldの編集は確定されません。 NSTextFieldのvalueをcocoaBindingsで利用してると編集前の値を参照してしまうことになりま…

makeとgnu sedでローカライズ

genstrings便利なんだけど、使うたびに全部やり直すはめになる。ので、自動化。1、プロジェクトのディレクトリにMakefileを用意します。このMakefileはgenstringsを使用してLocalized.stringsを生成します。 LocalizeFiles=XspfMLabelMenuView.m \ XspfMMai…

CocoaTouchなみなさんはKVCを知らない?

久しぶりにCocoaTouchなプログラムを書いてるんだが、NavigationBar関連で-viewWilldisappear:と-viewDidDisappear:が呼ばれないという問題に直面した。 まあ、CocoaTouchもだいぶ枯れてきてるので、だれかが解決してくれているだろうと思ってググってもUINa…

Xcode!

3.xなんだけどwx86_64だとQuickTime.frameworkを使えない&特になくても良いのでx86_64でだけ外しちゃおうと思ったけどやり方があるのかないのかさえ分からなかったのでググってみたらあっさり見つかったwiphone - Xcode: Conditional Build Settings based …

BathyScapheで次スレを検索できるかもしれないプレビューアプラグインが作れるかもしれないソースコード

プレビューできませんがプレビューアです 精度は低いです 爆発するかもしれません 単品で使うと画像プレビュー出来なくなります PreviewerSelectorほぼ必須 ウインドウメニューにあるのはウインドウメニュー展開後には必ずプレビューアがロードされてるから …

誰も得しない(含む 俺)

Objective-Cはプロパティに関してはruntimeを完全に二分してしまった。Appleはそれらをmodern runtimeとlegacy runtimeと呼んでる。 違いはプロパティの定義にある。 @interface AClass : NSObject @property (retain) NSString *title; @end @implementatio…

property_getAttributes改訂版

@property (getter=isHoge,setter=fuga) ってのをすっかり忘れてたので改訂。 <property attribtue> ::= 'T'<type>','<attribute list><getter attribute><setter attribute>'V'<variable name> <variable name> ::= variable name <getter attribute> ::= 'G'<getter name>',' <getter name> ::= getter selector name <setter attribute> :…</setter></getter></getter></getter></variable></variable></setter></getter></attribute></type></property>

property_getAttributes

const char *property_getAttributes(objc_property_t prop)が返すものをBNF記法で示してみよう。 <property attribtue> ::= T<type>,<attribute-list>V<property name> <property name> ::= property name <attribute-list> ::= [<attribute-list>]<attribute>, <attribute> ::= <nonatomic>|<copy>|<retain>|<readonly> <nonatomic> ::= N…</nonatomic></readonly></retain></copy></nonatomic></attribute></attribute></attribute-list></attribute-list></property></property></attribute-list></type></property>

具だくさん

昨日の続き 昨日は寝落ちてしまったのでw具だくさんなので色々書きますよ 先ず、cocoa用Makefile LDFLAGS=-framework Foundation -framework AppKitこれだけ! make最高! hoge.m #import <Foundation/Foundation.h> int main(int argc, char* argv[]) { id pool = [[NSAutoreleasePoo</foundation/foundation.h>…

では問題です。

次のp,q,r,sの内、異なるオブジェクトはどれでしょう? int main() { NSString *p = @"hoge"; NSString *q = [p copy]; NSString *r = [NSString stringWithString:p]; NSString *s = [r copy]; NSLog(@"%p, %p, %p, %p", p, q, r, s); return 0; } 分かりま…

i368/x86_64で-[NSObject hash]が激遅に!?

-[NSObject hash]の話題をTLで拾ったので広げてみた。 Mac OS Xにはx84_64とi386の二つのアーキテクチャがあります。 この二つの-[NSObject hash]が何を返すのかをgdbで調べてみました。*1x86_64 push %rbp mov %rsp,%rbp mov %rdi,%rax ; 第一引数を戻り値…

NSAutoreleasePool まだやるヨ!

drainついでにCGオンにしてみた。 id:masakih:20110120:1295526446とほとんど同じ。leak数(=initとreleaseが合わない)を追加で出力。 Pointer---- Alloc Init Release/Drain Dealloc <0x200036100> 1 1 1 0 <0x20009ef60> 1 1 1 0 <0x20009fe60> 1 1 1 0 …

NSAutoreleasePool まだやるのかヨ!

前回id:masakih:20110120:1295526446の-[NSAutoreleasePool release]を-[NSAutoreleasePool drain]に変更するとどうなるだろうと思いやってみたが、意味なかったゼ!

NSAutoreleasePool 再び

あれid:masakih:20110113:1294933491を書いたあと、例外以外でも大丈夫なんだろうかと思ったのでやってみたよ! - (void)test01 { NSAutoreleasePool *pool01 = [[NSAutoreleasePool alloc] init]; for(int i = 0; i < 100; i++) { NSAutoreleasePool *pool0…

NSAutoreleasePool祭り

なぜかTLがNSAutoreleaseであふれてたので以前から気になってた事を試したよ!どこかのひと曰く 例外処理の@finallyブロック内でNSAutoreleasePoolを解放する必要はないよ! にわかには信じられませんでしたが、試す気もありませんでした。今回これを検証し…

げんごをきりかえます!

(旧) Cocoaの日々: tips: 開発中に実行時の言語を英語に切り替える以前ここで見つけてそのうち試そうを思ってたんだけど今試したら上手くいかなかった。 なぜか”NSString は -countメソッドなんて持ってねーよ!”て言われる。確かに持ってない。 で、調べて…

vi ユーザー必見?

Vimライクに操作ができる軽量ToDoリスト『Project Hedgehog』 - Macの手書き説明書モードは無いので代わりに⌘(コマンド)キーを使うみたいです モードあっても良いじゃねえの? ⌘+^+SPACEでいつでも呼び出せるのが良いですね。 残念な事にウインドウの位…

使いどころ? なにそれ?

あらゆる実装していない引数なしメソッドでnilを返す。 #import "ClassA.h" #include <objc/runtime.h> @implementation ClassA static NSMethodSignature *sSig = nil; - (NSMethodSignature *)sig { if(sSig) return sSig; Method method = class_getInstanceMethod([self </objc/runtime.h>…

こんなのあった

はてなでブックマークレットのリンクがはれなくて困ってたけどこんなのがあったみたい。 タイトルの 「Anti efreedom」がブックマークレットへのリンクになってます。 ブックマークバーにドラッグすれば登録出来ますよ! 追記:FirefoxとIEだとうまく動きま…

潰れないなら仕方ない

javascript:(function(){var%20q;if(location.search.substr(1).length%3E1){var%20list=location.search.split(%22&%22);for(var%20i=0;%20i%3Clist.length;i++){var%20kv=list[i].split(%22=%22);if(kv[0]==%22as_q%22%20||%20kv[0]==%22q%22){q=kv[1];}}}…

NSArrayとバイナリサーチ

@interface AData : NSObject @property (retain) NSNumber *number; @property (retain) NSData *data; @end こういうクラスのインスタンスが多量にNSArrayに入れられてあるとしましょう。 この集合の部分集合に対しとあるアクションを起こします。 ただし…