1 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 10:47:48.04 ] Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。 (Wikipedia:ja.wikipedia.org/wiki/Objective-C より) Objective-C [ObjC part:5]; hibari.2ch.net/test/read.cgi/tech/1279730299/ Objective-C [ObjC part:4]; pc12.2ch.net/test/read.cgi/tech/1239721860/ Objective-C [ObjC part:3]; ttp://pc12.2ch.net/test/read.cgi/tech/1186543111/ Objective-C ttp://pc11.2ch.net/test/read.cgi/tech/1106983092/ Objective-C ttp://pc5.2ch.net/tech/kako/990/990574267.html
348 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 10:52:47.63 ] スレ違いだから良く分からんが全部持っとけばいいんじゃね? ObjCがどれでも使えるのは間違いないよ
349 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 21:45:17.31 ] iPhoneアプリのInstagramみたいにiOS5のTwitter機能使いつつ投稿クライアント名を任意にしたいんだけど、どうすればいいの?教えてエロい人
350 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 05:27:53.65 ] 勉強してみるかな
351 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 16:07:25.96 ] UIView.hにある以下は何を表しているのでしょうか? @interfaceは class : supper class という書き方しか知らないのですが。 @interface UIView(UIViewGeometry)
352 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 16:48:17.24 ] >>351 >>3
353 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:23:22.58 ] windows7 でのGNUStepのgccにてobjective-cなのですが、 @autoreleasepool { }ブロックがコンパイルできなくて困っています。 これがコンパイルしたいコードです //main.m #import <Foundation/Foundation.h> int main(void) { @autoreleasepool { id obj = [[[NSObject alloc] init] autorelease]; } return 0; } Makefileです main.exe: main.o gcc $^ -o $@ -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -enable-auto-import main.o: main.m gcc -c -o $@ $^ -I /GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString clean: @rm -rf *.exe *.o
354 名前:353 mailto:sage [2011/11/23(水) 17:25:18.76 ] エラー内容です。 main.m: In function 'main': main.m:6:2: error: stray '@' in program main.m:6:3: error: 'autoreleasepool' undeclared (first use in this function) main.m:6:3: note: each undeclared identifier is reported only once for each func tion it appears in main.m:6:19: error: expected ';' before '{' token
355 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:31:23.78 ] autoreleasepoolやめて手で書けば
356 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:34:49.11 ] >>353 blocksにはClangが必要
357 名前:353 mailto:sage [2011/11/23(水) 17:38:55.56 ] >>356 ありがとうございます。 そうなんですか・・・ MaxでのXCodeでもそうなんですか?
358 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:40:30.07 ] >>356 なんでBlocks? ARCの話だろ
359 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:41:54.49 ] ARCの話ともちょっと違うかも
360 名前:353 mailto:sage [2011/11/23(水) 18:31:18.30 ] 調べてみたらMaxでも新しいXCodeなら使える?らしいですね ttp://stackoverflow.com/questions/7926843/a-fail-concerning-the-expression-autoreleasepool 手でNSAuto〜でやることにします。 ありがとうございました。
361 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:00:10.17 ] gccを使わず、clangにすればいい。
362 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:18:00.25 ] winでgnu stepでgccとかって なんかの修行?
363 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:04:37.76 ] >>362 今手元にMacが無いんですが、今後objective-cやる予定があって、 その練習です。なのでこの環境でアプリ作る予定ではないです。 >>361 clangでやったらヘッダーが無いとか色々怒られて面倒になってしまいました
364 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:06:06.40 ] 勉強なら仮想環境(VMWare)上でやればいい
365 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:52:42.88 ] >>364 う〜んどうやらグレーな感じですし、今回はやめておきます。
366 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:07:28.63 ] プログラミングで遊ぶのにMacいいよ いい機会だし一台手に入れてみては
367 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:13:34.83 ] >>366 お金たまったら手に入れたいな〜と妄想中ですわぁ
368 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 01:08:58.21 ] Mac Mini買っとき
369 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 09:49:52.99 ] miniは、なかなかよい
370 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 23:51:19.37 ] 色の配列を作成したい。 Color list[] = { "ffffff", "ffcccc" }; みたいなことをしたい。
371 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 00:15:01.31 ] 共通の定数を定義したcommon.hを作成し、 他の複数のファイルから#importするとリンクエラーになる。 回避策ない?
372 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 00:25:13.62 ] なにをどんな風に書いてんの?
373 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 02:20:26.39 ] インポートは何回やってもいいはずだが、 インクルードはだめだけど
374 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 02:29:13.98 ] 同じ定義が複数のファイルに含まれる事になってduplicate symbolとかそんな話でしょ。
375 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 18:25:59.32 ] extern使え
376 名前:デフォルトの名無しさん [2011/11/25(金) 21:42:59.95 ]
377 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:06:34.95 ] クラスの引数のラベルって第2引数からしかつけられないのかね? 第1引数はメソッド名がラベル扱い?
378 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:22:32.62 ] VBとかの引数ラベルとはまた別の考えの物だから
379 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:23:01.83 ] 137:デフォルトの名無しさん :sage:2010/10/17(日) 12:28:41 メソッドの第一引数のコロンの前はメソッド名なのに、第二引数以降はコロンの前がラベルになってる。 アンバランスな気がするんだけど、言語デザイン的に理由があるのかね。 コロンを縦に並べたときの見栄えのためだけに、第一引数の前のラベルはなかったことにしたの? 138:デフォルトの名無しさん :sage:2010/10/17(日) 14:07:02 全部メソッド名なんだが。 ラベルなんてものはない。 140:デフォルトの名無しさん :sage:2010/10/18(月) 10:28:46 developer.apple.com/jp/documentation/cocoa/conceptual/objectivec/Articles/chapter_2_section_3.html ラベルって呼ぶんだよね、実は。 便宜上そう呼んでるだけっぽいけど 143:デフォルトの名無しさん :sage:2010/10/18(月) 14:00:40 >>140 ObjCの専門用語としてラベルって言ってるんじゃなくて 日常英語としてラベルって書いてるんだろうね
380 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 01:37:00.20 ] 構文では単にセレクタとなってるね しかしそもそも第一引数にも:ついてる
381 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 01:39:55.72 ] allocみたいな:がない奴は単項セレクタで引数ではない
382 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 09:23:40.61 ] CもC++もObjCも慣れたらどうってことは無いな ObjCは活躍の場が限られすぎるところが問題だが
383 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 11:08:23.45 ] 勝谷君
384 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 13:10:38.28 ] やってみる
385 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 16:48:51.89 ] 質問です。 ObjCではシングルトンインスタンスは作りっぱなしのコードばかり見つかるんですが、 それはOSがお片付けしてね!って思想ですか? もちろんメモリ以外のリソースは、 それ用のメソッドを用意しなければならないですが。
386 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 16:52:33.36 ] シングルトンを一々解放する必要がある設計ってなによ?
387 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 17:20:59.95 ] >>385 他の言語だといちいち自分で解放するの?
388 名前:385 mailto:sage [2011/12/06(火) 17:26:03.67 ] CやC++でヒープに確保していたシングルトンインスタンスは解放していたので。 ただ解放しないという方針でよさそうですね。 ありがとうございました。
389 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 17:53:40.59 ] 自力リファレンスカウンタ方式なら通常運用で解放できるんじゃね? static long refCount = 0; @implementation Hoge static Hoge *sharedInstance = nil; - (id)allocWithZone:(NSZone *)zone { refCount++; // 以下テンプレ通り } - (id)retain { refCount++; return self; } - (id)autorelease { [[[Foo alloc] initWithObj:self] autorelease]; return self; } - (oneway void)release { if(--refCount == 0) [self dealloc]: } @end @implementation Foo - (id)initWithObj:(id)inObj { obj = [inObj retain]; } -(void)dealloc { [obj release]; [super dealloc]; } @end とか
390 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 19:05:51.90 ] @imp... + (id)alloc...{ if (!sharedInstance) { ... } ... } - (void)dealloc { ... sharedInstance = nil; } ... @end 参照カウンタはNSObject任せでいいような。
391 名前:385 mailto:sage [2011/12/06(火) 21:14:15.76 ] >>389-390 状況によってはこっちの挙動のがいい場合もありそうですね ありがとうございます。
392 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 23:27:40.83 ] >>389 面白いなあ。キミ頭おかしいんじゃね? 自力リファレンスカウンタ(笑)
393 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 15:24:50.29 ] UDPプログラムを作っている時、エラーが出てきてとれません。 参考サイト www.geekpage.jp/programming/macosX-network/udp.php エラーが出ているところ addr.sin_addr.s_addr = inet_addr("127.0.0.1"); エラー内容 file://localhost/Users/user1/Desktop/wol/wol/Wol.m: warning: Semantic Issue: Implicit declaration of function 'inet_addr' is invalid in C99 なにか追加したらいいんでしょうか?
394 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 15:48:59.03 ] #include <arpa/inet.h>
395 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 16:06:42.01 ] >>394 ありがとうございました。それで消えました。
396 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 16:13:02.79 ] スレチだしエラーくらい自分で読めって感じだけどな。
397 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 16:31:48.37 ] ググればすぐに解決することを聞いてくる奴は無能以下だよな
398 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:20:09.88 ] >>397 未満だろ 無能に謝れ
399 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:35:34.54 ] 文脈をみれば以下で自然。 予想以下とか、予想を含まないから。
400 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 23:47:57.37 ] 困った、バカだ
401 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 10:33:32.17 ] 以下でOK
402 名前:デフォルトの名無しさん [2011/12/14(水) 11:35:33.11 ] すみません。教えてください。 (1)を(2)に書き換えるべきか悩んでいるのですが、(2)のほうがメモリの効率は良いのでしょうか? (NSStringの割り当てはメモリに残り続けると何かで読んだので、気になっています) それとも、これはあんまり意味のない書き換えで、メモリがきついなら、ループの何回かに一回、 NSAutoreleasePoolを挟んでおけばおkですか? (1)NSString for(int i = 0; i < newDataArray.count; i = i + 1) { NSString *threadString = [newDataArray objectAtIndex:i]; <中略> } (2)NSMutableString NSMutableString *threadString = [[NSMutableString alloc] init]; for(int i = 0; i < newDataArray.count; i = i + 1) { [threadString setString:[newDataArray objectAtIndex:i]]; <中略> } [threadString release];
403 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:40:38.13 ] (1) の方が良いに決まってるだろ。 > [threadString setString:[newDataArray objectAtIndex:i]]; Array から取り出した String を一々コピーしてどうする。
404 名前:402 mailto:sage [2011/12/14(水) 11:51:41.88 ] >>403 ありがとうございます。 メモリに残るというのは、NSString *msg = @"hoge"; のように定数を設定した場合の話ですよね。 助かりました。
405 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:53:40.04 ] 処理が要素を読むだけなら(1)の一択 >NSStringの割り当てはメモリに残り続けると何かで読んだので、 意味が分からない NSStringリテラルの話? あと、高速列挙使った方がいいかな int i = 0; // インデックスが必要なら for(NSString *threadString in newDataArray) { // なにかする i++; // インデックスが必要なら } >NSAutoreleasePoolを挟んでおけばおkですか? うん
406 名前:402 mailto:sage [2011/12/14(水) 12:13:56.07 ] >意味が分からない NSStringリテラルの話? リテラルの話です。仕様の細かい話を読んで、理解しきれず変に混乱してしまったみたいです。スマソ。 >あと、高速列挙使った方がいいかな 使ってなかった。ありがとー!
407 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 07:48:15.32 ] plistファイルを読み込みたく、以下のように記述しました NSString *path = [[NSBundle mainBundle] pathForResource:@"hogehoge" ofType:@"plist"]; NSArray *array = [NSArray arrayWithContentsOfFile:path]; しかし、これだとerror: initializer element is not constantがでます そういう場合はどこに原因があるのでしょうか
408 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 08:42:27.37 ] >>407 エラーメッセージでぐぐれ。 書く内容の問題ではなく、書く場所の問題。メソッド (や関数) の中に書けば OK。
409 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 22:02:15.93 ] これで独立できる 売るものはスマートフォンアプリ WEBサイト運営 サーバーはクラウド VPS 電話はスマートフォンSkype オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万) レンタル自習室&シェアオフィスで収入を得ながらそこで開発する bit.ly/iLIpJa bit.ly/m7nkew
410 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 00:31:16.55 ] 地方でシェアオフィスが成功すると信じるあなたは事業失敗に突き進むと予言しときます
411 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 08:17:47.23 ] >>410 それ、定期的に流れるスパムだよ
412 名前:デフォルトの名無しさん [2011/12/21(水) 17:21:27.29 ] クラスの中で変数をセットする場合って、たとえば、 name = @”hoge”; ではなく、self.name = @”hoge”; もしくは、[self setName:@”hoge”];とやるべき? publicな変数にそうしたほうがいいのは分かるけど、作法として、privateな変数にまでそうやるべきもの? privateを含む全ての変数に@property,@synthesizeを設定するのは、ちょっと面倒に感じるのだけど。
413 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 17:31:31.47 ] オーナーシップ GC、ARC で答えが微妙に違う KVO発動させなくていいなら割とどうでもいい
414 名前:412 mailto:sage [2011/12/21(水) 20:20:34.18 ] >>413 >GC、ARC iOS用に書いてたんだけど、ARCになるとルール全然違うのね。うへえ。 >KVO発動させなくていいなら割とどうでもいい 参考になった。ありがとう。
415 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:13:11.69 ] 半端な知識でインスタンス変数に生で代入したりするとメモリリークしまくる だけだから素直にプロパティ使った方がいいと思うけどね モダンランタイムになってから自分で変数用意してやる必要無いし 手間としてはそんな変わらん
416 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:13:55.54 ] まあARC使うならあんまり気にしなくていいけど
417 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:48:56.85 ] >>411 そんなスパムにコメントしたあたくしがこっぱずかしー
418 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:44:48.35 ] 穴を見つけて入れ!
419 名前:デフォルトの名無しさん [2011/12/22(木) 00:18:13.73 ] アホな質問でごめん。以下のfuncで messageの解放がはじまるのは、forループが終わった後で、 regexpの解放がはじまるのは、funcを抜けた後という理解で合ってる? つまり、スコープ内でのautoreleaseオブジェクトの生存が保証されてるのか、ということなんだけど。 たとえばfuncをバックグラウンドで実行させている途中でメモリの解放がかかったときのために、 (まさか、いらないとは思うんだけど)関数内の頭と尻尾で手動でallocとreleaseしたほうがよいのかとか混乱中。 - (void)func:(NSArray *)sourceArray pattern:(NSString *)pattern relace:(NSString *)replace { NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error]; for(NSString *message in sourceArray) { NSString *replaced = [regexp stringByReplacingMatchesInString:message options:0 range:NSMakeRange(0,message.length) withTemplate:replace]; /* 中略 */ } }
420 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:42:02.76 ] message は retain されてないから、解放も糞もない。 regexp の解放は、func を呼び出す状況に依るだろう。
421 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 01:15:47.16 ] >>419 ARC かどうかで微妙に違う。ARC 無効の場合、 ・message は sourceArray が retain してるものを参照してるので、 sourceArray から削除されない限り有効。 ・regexp は一番内側の autorelease pool が解放されない限り有効。 自分でわざわざ autorelease pool を生成/解放しない限り、 スコープを抜けても有効。特に、return してもまだ生きてる。 ARC の場合、regexp や message などの変数はデフォルト __strong なので、 代入した時点で retain され、スコープから抜ける時に release される。 (スコープから抜けても sourceArray や autorelease pool が所有権を 持ってるので、ただちに解放される訳ではない。)
422 名前:419 mailto:sage [2011/12/22(木) 03:15:34.82 ] >>420 >>421 ありがとう。もうちょっと、教えて。すまん。 >・regexp は一番内側の autorelease pool が解放されない限り有効。 つまり、メインスレッドでイベントループが進行しても、バックグランドで実行中のfuncのなかの (regexpが登録されている)内側のautoreleaseプールが解放されることはない? 自分でわざわざautorelease poolを作成していない場合の話として。 それは、メインスレッドで解放されるプールと、regexpの登録されているプールの場所が違うからか、 それとも、スコープを抜けないとregexpのrelease処理を実行しないからなのか、どっちなんだろう? #なんとなくメインスレッドが進行すると、1つしかないプールを空っぽにされそうなイメージがあるのだけど 早くARCに移ったほうがいい気がしてきた。
423 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 04:37:47.37 ] ・autoreleasepoolはthread local ・main thread以外のthreadのpoolは自分でつくらないといけない
424 名前:419 mailto:sage [2011/12/22(木) 13:52:01.64 ] >>423 ありがとう。ここまで教えてもらって、やっと分かってきた。 ARCを使わない場合に、サブスレッドでNSAutoreleasePoolを自分で作らないといけないのは、以下の全部? (1)NSThread detachNewThreadSelector:@selector (2)self performSelector:@selector (3)GCD:dispatch_async (4)非同期通信:NSURLConnection connectionWithRequest:request delegate:delegate (1),(2)で、自分でプール管理しないといけないのは分かる。(3),(4)の場合、自動的にNSAutoreleasePoolを用意してくれるのかな? 質問のバックグラウンド処理は(4)の後のconnectionDidFinishLoadingでの処理なんだけど。
425 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:00:35.91 ] Objective-CでCGI書けますか?
426 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:10:37.24 ] 駆けます。
427 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:12:53.04 ] ありがとうございます Hello WorldのCGIだけでも教えてください orz
428 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:28:26.57 ] int main() { printf("Hello World\n"); }
429 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:15:14.45 ] こんにちわ、はじめたばっかりでよくわからないんですが、xcode4.2で、外部ファイルはどうすればいいですか? 4.1以下はリソースフォルダの中に入れれば良いみたいですが、4.2で初めて触りだしたので、よくわかっていません。 ネット上にも情報少なく…。お願いします。
430 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:20:41.98 ] スレチ
431 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:36:58.80 ] >>424 「いけない」のは 1 だけ。 2: そもそもスレッド関係ない。-[NSObject performSelector:] は呼び出したスレッドでの実行。 performSelectorInBackground:withObject:のことをいっているのならば (1と同様に)自分で作らないといけない。 3: GCDのqueueがプールを用意しているから、自分では作らなくてもよい。 ただし、そのプール内のオブジェクトがいつ解放されるのかは保証がないので、 オブジェクトを大量に作成する場合などには自前で用意したほうがよいこともある。 4: これもスレッドは関係ない。 NSURLConnectionはスレッドではなくRunLoopによるイベント駆動型の非同期処理。 -[NSURLConnectionDelegate connectionDidFinishLoading:]は +[NSURLConnection connectionWithRequest:delegate:]を実行したのと同じスレッドで呼ばれる。
432 名前:419 mailto:sage [2011/12/22(木) 21:36:40.25 ] >>431 >2: そもそもスレッド関係ない。-[NSObject performSelector:] は呼び出したスレッドでの実行 >+[NSURLConnection connectionWithRequest:delegate:]を実行したのと同じスレッドで呼ばれる。 このあたりが、ごっちゃになってた。 丁寧に教えてくれて、ありがとう。かなり助かった。
433 名前:デフォルトの名無しさん [2011/12/24(土) 19:23:51.25 ] 高速列挙では順番が保証されないというのを見かけて気になってるのだけど、 以下のような単純なarrayやmutableArrayでも、高速列挙で順番が狂うことがあるの? こういう場合なら順番が狂うという例を教えてもらえないかな。 NSArray *array = [NSArray arrayWithObjects: @”One”, @”Two”, @”Three”, @”Four”, nil]; for(NSString *string in array) { NSLog(@"%@", string); } NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array]; [mutableArray addObject:@”Five”]; for(NSString *string in multableArray) { NSLog(@”%@”, string); }
434 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 19:55:56.82 ] > 高速列挙では順番が保証されないというのを見かけて 何処で見かけたの?
435 名前:433 mailto:sage [2011/12/24(土) 20:19:16.08 ] >>434 ttp://d.hatena.ne.jp/watanata2000/20110104/1294108945 このブログの記事。なんか自分が勘違いしてるのかもしれない。
436 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 20:58:19.47 ] 配列なら保証されてると思うけど、どうなんだろね。 developer.apple.com/jp/devcenter/ios/library/documentation/ObjC.pdf 「明確な順序を持つコレクションや列挙子(配列から派生したNSArrayインスタンスやNSEnumerator インスタンス)の場合、 列挙はその順序に従って行われるため、必要な場合は反復をカウントする だけでコレクション内を指す正しいインデックスが得られます。」 「For collections or enumerators that have a well-defined order―such as NSArray or NSEnumerator instance derived from an array― the enumeration proceeds in that order, so simply counting iterations will give you the proper index into the collection if you need it.」 詳解Objective-C2.0の2刷にも「配列の場合は先頭から順番」と書いてあるけど、 翻訳がミスってるのか、実装がおかしいか、何か勘違いがあるのか、最近変わったのかも。
437 名前:436 mailto:sage [2011/12/24(土) 21:10:34.19 ] そのサイトのコードを見ると for (UIScrollView *scrollView in self.scrollView.subviews) { と UIScrollView *scrollView = [self.scrollViews objectAtIndex:index]; だから、 高速列挙はsubviewsのviewをとってて、 もう一つはscrollViewsのオブジェクトを取得してるから、サイトに載せる時に書き間違えてなければ 高速列挙の方は for (UIScrollView *scrollView in self.scrollViews) { じゃないのかな。 subViewsがscrollViewsと同じかどうかはこれだけじゃわからないけど。
438 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 07:09:32.06 ] >>436-437 ありがと。配列なら問題なさそうだけど、なんか気になるなあ
439 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 17:47:58.73 ] 荻原本の第3版が出てた。ARC関連が追加っぽい 荻原本 amazon.jp/dp/4797368276
440 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:43:31.85 ] 画面遷移するときのアニメーションで、『右から左方向にスライド』するプロパティが無いか探しています。 どこかのサンプルから拾ってきた画面遷移するメソッドなんですけど、 ソースに、いろいろプロパティを設定してみたのですが、その思うようなプロパティが見つからないです。 -(IBAction)showTableLight{ //使う変数 TLLightViewController *controller = [[TLLightViewController alloc] initWithNibName:@"TLLightViewController" bundle:nil]; //プロパティ色々 //controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; //横回転フリップ //controller.modalTransitionStyle = UIModalTransitionStylePartialCurl; //ページ送り //controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; //じわじわとみえてくる表示 //controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical; //下から上方向にスライド表示 //controller.modalPresentationStyle = UIModalPresentationCurrentContext; //下から上方向にスライド表示 //controller.modalPresentationStyle = UIModalPresentationFormSheet; //下から上方向にポップアップでスライド表示 //controller.modalPresentationStyle = UIModalPresentationFullScreen; //下から上方向にスライド表示(画面全体) //controller.modalPresentationStyle = UIModalPresentationPageSheet; //下から上方向にスライド表示(ページ全体) //画面遷移 [self presentModalViewController:controller animated:YES]; //解放 //[controller release]; //xcode3迄 controller = nil; }
441 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:53:34.37 ] スレチ
442 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:52:06.23 ] >>438 そのブログが阿呆なだけ
443 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:55:45.72 ] 何でWindowsに開発環境を用意してくれないのですか? QuickTimeというksみたいなものはWindowsにあるのに何でですか?
444 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 18:35:17.44 ] >>443 GNUStep
445 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 18:44:11.61 ] >>443 MSがVisualStudio for Mac出してWindowsPhoneの開発ができるようになったら俺も賛同するよ
446 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 18:56:46.83 ] >>445 ここに書くんだから「Appleは」なわけがなでしょ こんな所にそんなこと書いても何の意味もないじゃん まさか >443 はそこまで馬鹿じゃないでしょ?
447 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:07:55.83 ] >>445 普通にVSなんていらねえわな
448 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 02:23:20.52 ] 2005くらいのVSはけっこう好きだな。 最近のはVSもXcodeも同じくらいイライラする。