<< Prev Page Next Page >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


くたばるCocoa

iPhone/iPadアプリつくってます。しんどいです。

Webに慣れたご老体にはマルチスレッドでアニメーションがガンガン走ってallocしたらreleaseしなきゃいけない環境はきつい。

いやそんなのはたいした問題じゃない、何よりも、Objective-Cの変態的な文法とCocoaの変態的なAPIにやられっぱなし。C#が懐かしいよう。

文字列を連結するのに

NSString* a = @"Hello! ";
NSString* b = @"World!";
NSString* c = [a stringByAppendingString:b];

って。長いって。

URLエンコードするのに
NSString* comp = @"文字列";
NSString* encoded = [comp stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

って。いやいやねーわ。

無名関数、クロージャ、そういうようなものの「blocks」の構文がまたイカス。
blocksを引数にとってメンバ変数として覚えておくっていうコードがどうしても覚えられない。つまりJavaScriptだと、
function MyClass(onClicked) {
this.onClicked = onClicked;
}
(略)
var m = new MyClass(function(str) {
// 処理
});

となるところ、Objective-Cだと、
@interface MyClass {
@private
void (^onClicked)(NSString* str);
}
- (id)initWithCallback:(void (^)(NSString*)func;
@end
(略)
@implements MyClass
-(id)initWithCallback:(void (^)(NSString*)func {
onClicked = [[func copy]retain];
}
@end
(略)
MyClass* m = [[MyClass alloc]initWithCallback:^(NSString* str) {
// 処理
}];
となる。blocksのメンバー変数宣言がなんか変じゃない?


あと、UIAlertViewとかUIActionSheetとかpresentModalナントカ(覚えられない)のアニメーションが走ってる間、presentModalナントカを呼んでも無視されて表示されないっていうの誰かなんとかしてください。アニメーションが終わるのを待つっていうコードが書けなくて困ります。じゃあと思ってアニメーションしないようにanimated:NOにしたらこんどは周りのViewのレイアウトがごそっと移動しちゃうのを誰かなんとかしてください。


この記事に対するコメント

この記事に対するコメントの投稿



管理者にだけ表示を許可する

この記事に対するトラックバック

トラックバックURL
http://tockri.blog78.fc2.com/tb.php/246-40130e67
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。