1 名前:デフォルトの名無しさん [2009/04/15(水) 00:11:00 ] Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。 (Wikipedia:ja.wikipedia.org/wiki/Objective-C より) 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
411 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 08:23:33 ] すみません自己解決しました
412 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [2009/10/19(月) 11:03:58 ] >>411 自己解決したのはいいとして、何が原因だったかくらい書いたらどうかな? それを読んで役に立つ人もいるはずだし。 ここでいろいろ助けてもらっても、結果は独り占めして誰にも教えたく無い、 っていう性格なら、まあ強制はしないけどね。
413 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 12:33:12 ] 変数に入った文字列を=で代入なんてできない。初歩的すぎる。
414 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 12:47:57 ] 「myNotePadがnilでした」に 3 retainCount かける。 >>413 なんの話をしているの?
415 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 13:54:51 ] >>412 そうですね。すみません。 実はメモリをallocしてなかったのが原因でした >>413 初心者は帰れ!!!! >>414 そうです。nilでした
416 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 13:57:45 ] 余計なことを言ったばかりに一気に印象が悪くなる。
417 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 19:17:41 ] 馬鹿は死ななきゃ治らないから415の罪じゃないさ。
418 名前:デフォルトの名無しさん [2009/10/19(月) 21:55:11 ] malloc: *** error for object 0x4c52320: pointer being reallocated was not allocated これは一体どういう意味なのでしょうか? メモリを再確保されたポインタはメモリ確保されませんでした? いまいちよく分からないのですが、具体的にどういう時に出るエラーなのでしょうか?
419 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:13:15 ] >>418 /usr/lib/libSystem.B.dylib の szone_realloc() 関数の中で szone_size() 関数が 0 を返すと発生するエラーだよ。 www.opensource.apple.com/source/Libc/Libc-583/gen/scalable_malloc.c
420 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:13:24 ] >>418 #include <stdlib.h> int main(int argc, char **argv) { char *foo = "abc"; foo = (char *)realloc(foo, sizeof(char) * 4); return 0; } みたいなことをしたときとか。
421 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:14:15 ] 再確保しようとしたポインタは確保されませんでした?
422 名前:418 [2009/10/19(月) 22:44:28 ] んー明示的にメモリの再確保してる場所はないんですけどね・・・ NSMutableStringのappendStringあたりで変なことになってるんですかね。 とりあえずどういうエラーなのかは分かったので、地道に問題箇所探していきます。 ありがとうございました!
423 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:46:34 ] >>414 413 は、OpenStep API が出る前で NSString* が無かった頃の人なんだよ。 というかここは Obj-C スレなので、Foundation があることを 仮定しないのが自然じゃないかな。 あ、でも、property 使う時点で Obj-C 2 か ...
424 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:01:33 ] NSStringが登場する前だってNXStringとかあったじゃん
425 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:40:46 ] 疑問です。 NSLog(@"%.f", 0.5); NSLog(@"%.f", 1.5); NSLog(@"%.f", 2.5); NSLog(@"%.f", 3.5); NSLog(@"%.f", 4.5); NSLog(@"%.f", 5.5); とした時、四捨五入されて出力結果は 1 2 3 4 5 6 になると思いきや実際には 0 2 2 4 4 6 となりました。偶数時は5以下は切り捨て。奇数時は5以上を繰り上げているようです。 printfでも同様でした。 なぜこうなるのでしょうか? 10.5、10.6、Cocoaアプリケーション、Standard Tool、C89、C99 等いくつか状況を変えて試しましたがいずれも同じ結果でした。
426 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:55:31 ] >>425 偶数丸め
427 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:56:05 ] NSURLConnectionを使ってHTTPでデータの差分取得をしたいのですが NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60]; [request addValue:@"Wed, 30 Jul 2008 12:12:12 GMT" forHTTPHeaderField:@"If-Modified-Since"]; [request addValue:@"445-" forHTTPHeaderField:@"Range"]; NSData *data; NSURLResponse *response; NSError *error = nil; data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; とりあえずリファレンスとか見ながら頑張って↑のコード書いたのですが、 結局差分取得はせずに全部ダウンロードしてしまいます。 どうすればいいのでしょうか・・・
428 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 00:02:33 ] >>426 ググってみました。ありがとうございます。
429 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 00:06:39 ] あー、アホだー bytes=が抜けてました。死んできます。
430 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 00:15:00 ] この様はiPhoneさまさまなのかな。
431 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 00:59:23 ] サマーはもう終わりました
432 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 11:33:53 ] 次のスレのはじめには、ここはあくまで言語仕様のスレで、 Mac / iPhone Cocoa プログラムはそれぞれのスレにいくよう 強調したほうがよいかも
433 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 16:28:20 ] 別にいいんじゃん?暇だし。
434 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 16:52:33 ] まぁね 暇だし 仕事ないし
435 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 16:53:48 ] >>434 暇なら仕事みつけろよwww
436 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 17:01:38 ] 働いたらそこで試合終了だって安西先生が言ってた
437 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 17:22:02 ] 俺は、親父が残してくれた財産で、 働かずに住んでいるよ。 結局、人生は親の財産次第。 馬鹿な親の子に生まれた子は、一生馬鹿。
438 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:01:23 ] 奇遇だな。俺も2chではそうなんだよ。 相続税のこととか考えると、まったく頭が痛いよ。
439 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:44:08 ] >>437 ,438 働かず、暇があるなら税法をやれば良い。 それで今の税法の穴を見つけてこっそり使えばいいんじゃね。
440 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:17:46 ] スレ違いうざい。
441 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:10:19 ] そういうスレ違いは許さないんだなw まぁ当たり前っちゃ当たり前か。スレ違いというか、板すら違うからなw
442 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:42:31 ] 国内のMac信者ってなんでこう雑魚ばっかりなんだろう
443 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:04:20 ] まぁ荒れる前にこの話題は終わらせちゃおうぜ!! releaseだ!release!!
444 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:17:59 ] Cocoa でドットを描くのは NSRectFill(NSMakeRect(x,y,1,1) するのが一般的なの? 難しいな…
445 名前:デフォルトの名無しさん [2009/10/21(水) 22:31:28 ] せっかくだからOpenGL使ったら?
446 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 22:39:22 ] なるほど。GL_POINTS を使って点を描く訳ですね。 お絵描きソフトを作ろうと思っているのですが、NSBezierPath 等 Cocoa の API を 使うのと比べてメリットはどんなところがあるでしょうか。
447 名前:デフォルトの名無しさん [2009/10/22(木) 09:44:53 ] 他機種向けのソフトを作る時も、流用しやすい
448 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 19:26:34 ] クロスプラットフォームなのは嬉しいですね。 ただ今回はプラットフォーム固有の機能をガンガン使って コーディングするつもりなので、他機種の事は考えていません。
449 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 19:35:39 ] >>444 みたいな面白いこと言い出す奴にそれは無理だと思うの
450 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 19:43:08 ] ん、どうしてそう思ったの?
451 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 21:46:06 ] 何だ、冷やかしか
452 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 23:49:37 ] 前々から言おうと思ってたけど、iPhoneアプリ開発スレ行けよ こっちとマルチすんな
453 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 23:53:20 ] 前々?マルチ?iPhone? いったい誰に向かって言ってるんだ?
454 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 23:59:16 ] 普通の人には見えない何かが見えちゃうと大変だな…
455 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:10:45 ] >>450-451 ,453-454 www
456 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:13:51 ] 何がしたいのか全く分からん… お大事にね
457 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:25:50 ] で、結局 >>449 は何だったの?
458 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:26:49 ] 君らもうMac板に帰ったら
459 名前:デフォルトの名無しさん [2009/10/23(金) 02:43:38 ] おちつけぢょwww
460 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 03:14:57 ] 何だ、冷やかしか
461 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 04:27:21 ] ひややっこおいしいです
462 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 16:02:24 ] NSStringに0123918201とか023384722とかの数字文字が入っているのですが、 それらのNSStringを if([numString1 intValue] < [numString2 intValue]){ } else if([numString1 intValue] == [numString2 intValue]){ } else{ } のように数値で比較した時、なぜか絶対にイコールのところに入ってしまいます。 NSLogでそれぞれに入っている数字は違う事を確認してるのですが、 それでも==の条件式に当てはまってしまいます。 どういう原因が考えられますか?
463 名前:デフォルトの名無しさん [2009/10/23(金) 16:17:41 ] すみません、調べてみたら、NSStringに入ってる数字は違うのですが、 intValueにしたら全然違う数値になっている事がわかりました。 NSStringに031424045645って入ってるのに intValueの値は2147483647になってます。 これは何でなんでしょうか・・・?
464 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 16:27:38 ] 31424045645 → 7 5104 E24D 2147483647 → 7FFF FFFF
465 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 16:28:45 ] signed int の最大値 INT_MAX が 2^31-1 = 2147483647 って知らないの? doubleでも使え
466 名前:デフォルトの名無しさん [2009/10/23(金) 16:39:38 ] あーなるほど・・・。intは4バイトなのでオーバーフローしちゃってるわけですね。 unsigned型でも全然桁がたりませんね。基本的に12桁以下の数値の文字なのですが、 これを数値的に比較するのにいい方法はないでしょうか?
467 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 16:41:29 ] long longか__int64
468 名前:デフォルトの名無しさん [2009/10/23(金) 16:48:28 ] >>465 doubleValueだと==を検出できなくなる可能性がありますね。 roundとかで切り捨てれば解決なのかな・・・ ちょっとやってきます。
469 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 17:15:02 ] NSLog(@"%ll", [numString1 longlongValue]); でlong long型が表示出来なかったので、数値が確認できず若干不安ではありますが、 期待通りの動作をしているようなので大丈夫なようです。 ありがとうございました。
470 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 17:55:21 ] %qi です。 ここ参照。 developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265
471 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 18:01:50 ] >>470 わぁ、ありがとうございますw 大丈夫だと言い聞かせながらも、もの凄く不安でしたw 念のためちゃんとなってるか調べてきます。
472 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 18:17:40 ] NSLog(@"%@ %qi", numStringX, [numStringX longlongValue]); 文字とそれをlonglong型に変換したものの対応表ですが・・・ 031423045645 5833744870023364608 031423045646 5833744874318331905 031424045644 5838039833024397314 031424045644 5838039833024397315 031424045645 5838039837319364611 031424045646 5838039841614331908 031425045644 5842334800320397317 031425045644 5842334800320397318 031425045645 5842334804615364614 031425045646 5842334808910331911 全然大丈夫じゃなかったです。一応文字数値が大きいものほど、 longlongの値も大きくなっているので正常に動作はしているのですが、 んー何でこう思った通りに動かないんだろうか(´・ω・`) どこも間違ってるようには見えないんですけど・・・
473 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 18:34:11 ] 031423045645 → 7 50F5 A00D 5833744870023364608 → 50F5 A00D 0000 0000 何が起こってるんだろ?
474 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 18:56:22 ] 031423045646 → 7 50F5 A00E 5833744874318331905 → 50F5 A00E 0000 0001 二つ目に関してはLSBが1になってますね。 んー・・・元のNSStringに何か問題があるんですかね・・・
475 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 19:53:27 ] 試しに↓をやってみたら NSString *testString = [NSString stringWithString:@"012345012345"]; NSLog(@"test: %@ - %qi", testString, [testString longLongValue]); 出力が test: 012345012345 - 12345012345 になってるので、基本的な使い方としては間違ってない感じですね。 numStringの中に入ってるデータに何か罠がありそうな感じですが、 普通にNSLog(numString)で表示させても、特に変な様子は見られないんですけどね・・・
476 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 20:01:16 ] ここはお前のメモ帳だ。いいぞもっとやれ。
477 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 20:02:33 ] 何かついてるんでしょうね。とりあえず、NSScanner で読んでみたら? NSString *str = [NSString stringWithUTF8String:"031425045646"]; NSScanner *scan = [NSScanner scannerWithString:str]; NSLog(@"%@, %qu", str, [str longLongValue]); NSLog(@"%qu", value); //031425045646(, 31425045646 //31425045646
478 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 20:06:18 ] あ、ごめん、スキャン部分が抜けてた。 uint64_t value; [scan scanLongLong:(long long*)&value];
479 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 20:09:01 ] NSLog(@"%@ %qi", numStringX, [numStringX longlongValue]); longlongValue なんて method はないよ。 ほんとうにこのコードで出した対応表なの?
480 名前:デフォルトの名無しさん [2009/10/23(金) 20:10:37 ] ちょっとNSScannerでやってみます >>479 その部分は手打ちなのでタイプミスしました。 ソースの方はちゃんとlongLongValueになってます
481 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 20:28:52 ] NSScannerで確かめて見たら正常に表示されました。 これに関連して、比較用のNSStringを新しくつくって、そこに元のNSStringをぶちこんで 表示させてみたら同様に正常に表示されました。何なんだろう・・・ とりあえず比較用のNSStringを作る事で対処しました。 これで比較部分がようやく安心の動きになるはず・・・ とりあえずありがとうございました!
482 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:24:31 ] おまえらメソッド定義の開き括弧って別の行にする派? - (id)fucknglyLongMethodNameContainingThousandsOfCharacters:bar { それともメソッド名の行にまとめる派? - (id)fucknglyLongMethodNameContainingThousandsOfCharacters:bar { あと、メソッドチェインで右の方まで来ちゃったときって、新しい行でメソッド名始めたりする? [[omgThisIsTooLongSoThatTheNextMethedHangsAtFarRightPositionWTF foo] thisIsTheSecondMethodSTFU:bar multipleArgsAnotherPain:poo]; それとも同じ行に置く? [[omgThisIsTooLongSoThatTheNextMethedHangsAtFarRightPositionWTF foo] thisIsTheSecondMethodSTFU:bar multipleArgsAnotherPain:poo];
483 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 02:17:55 ] -(void)括弧は同じ行にする { [[そんなに長いメソッド名 付けたりはしないけど] 基本的には同じ行かな]; id hoge = [コード見やすい方が気分がいいので あんまりにも右に長くなっちゃう場合は]; [hoge コードを分けちゃいますね]; }
484 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 12:50:09 ] WikipediaでCの例文見ると 関数宣言は改行で void a { } 条件式は if () { } while () { } 改行してるみたい。
485 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 13:09:58 ] >>484 Wikipediaは例として好ましくありません。 例として引用する場合は、Wikipediaが参照・参考にしている一次情報を引用しましょう。 括弧を次の行におくのはGNUコーディング規約で推奨されています。 同じ行に置く形もどこか有名な団体/企業での採用が元だったと思いますが忘れました(Sunだったかな)。 GNUコーディング規約 www.gnu.org/prep/standards/standards.html#Formatting www.sra.co.jp/wingnut/standards-j_toc.html ちなみに私は括弧は同じ行、メソッドチェインは>>483 と同様に分割を検討します。 状況によっては新しい行で開始します。同じ行には置かないでしょうね。
486 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:14:08 ] GNUスタイルは参考にするな、やっちゃダメな例だ Linuxコーディングスタイルがルールも少なく誰でも従いやすい でも、objc的にはAppleのコーディングスタイルをまねるのが一番いいのでは Appleなりの理由があってあのスタイルに落ち着いたんだろうから あと、Perlベストプラクティスのコーディングスタイルも学ぶところが多かった
487 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:24:09 ] コーディングスタイルなんて、プロジェクト内で一貫してればなんでもいいべ。
488 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:27:54 ] いきなりタブ・インデントは8文字とか書いてあるけど……
489 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:35:52 ] これか。 lxr.linux.no/linux/Documentation/CodingStyle
490 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:41:17 ] 基本Appleのサンプルコードを真似する形で。
491 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 04:47:35 ] ここで質問すべき事なのかよく分からないのですが、 Macのシステム終了、再起動、をするプログラムを作ろうと思ってます。 で、実装についてなんですが、よく分からないのでsystem関数で 再起動、システム終了のコマンドでも送ってみようかと思います。 shutdown -h now ですね!でもこれってrootじゃないアカウントからでも効くんでしょうか? あと、保存していないファイルとかは保存されないまま強制終了しちゃうのでしょうか?
492 名前:491 mailto:sage [2009/10/26(月) 04:51:26 ] 自分で試す気は無いのでよろしくお願いします。
493 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 06:39:57 ] >>492 自分で試せヴォケ
494 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 06:57:41 ] >>491 rootじゃなくてもだいじょうぶ
495 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 10:10:03 ] >>491 ここで質問すべきことじゃないですが、shutdown -h now だと かなり強制的に終了するのでよくないです。ファイル保存しますか? とかのダイアログも出ません。Apple おすすめの方法は developer.apple.com/mac/library/qa/qa2001/qa1134.html です。
496 名前:デフォルトの名無しさん [2009/10/27(火) 07:55:44 ] 既出かもしれんが、 foo.cppにあるint exec()って関数をbar.mのmain()から呼び出すのってなんか宣言必要なの? ldでexec()のシンボルが見つからないと言われる・・・
497 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 09:28:44 ] >>496 foo.cpp 側で extern "C" しとかんと Obj-C からは呼べないだろ、JK
498 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 21:55:28 ] >>497 Thx。やってたんだが、どうやらヘッダーファイルで宣言してたのがダメだったらしく、cppファイルに直接externしたら動いた。感謝。 原因まではおってないが‥
499 名前:デフォルトの名無しさん [2009/10/29(木) 13:23:39 ] メインスレッドから実行したスレッドAの処理が終わるまで メインスレッドを待機させるにはどう書けば良いのでしょうか。
500 名前:491 mailto:sage [2009/10/29(木) 13:33:31 ] [self performSelectorOnMainThread:<#(SEL)aSelector#> withObject:<#(id)arg#> waitUntilDone:<#(BOOL)wait#>]; じゃねーの。
501 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 13:34:15 ] 名前消し忘れてたヨ
502 名前:499 mailto:sage [2009/10/29(木) 13:36:38 ] やっぱりperformSelectorOnMainThread使わないといけないんですね。 あまりメソッド増やしたくなかっただけなんですが、どうもです。
503 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 13:54:21 ] >>502 「使わないといけない」わけじゃねーよ。 >>500 は 物知らずでも使える一番簡単な方法を提示してくれただけだろ。 文句あるなら pthread の関数とか NSCondition でも使ってろ
504 名前:デフォルトの名無しさん [2009/11/08(日) 15:04:31 ] 簡単なxmlを解析するクラスを作ってます。char型のメンバ変数を持たせたいと思ったのですが、うまくいきません。 @interface SimpleXml : NSOperation { const char *elementName; } オブジェクトの初期化のところで - (id)initWithRequest: (NSURLRequest*)request name: (NSString *)name { self = [super init]; if (self) { elementName = [name UTF8String]; } return self; } こんな風にしてみた。代入直後でNSLogするとちゃんと代入されてるのですが、実際に使いたいメソッドの中では文字化け?のようなおかしなデータになってます。 比較対象がchar*なので最終的にはchar*が欲しいです。メンバ変数をNSStringにして比較するところでUTF8Stringで変換して比較するとうまくいきます。 ただ、xmlの要素分繰り返し呼ばれる部分なので、毎回UTF8Stringを呼び出すくらいならcharで持たせちゃえと思いました。 それほどおかしなことはしてないつもりなのですが、やっぱりポインタの理解が足りてない感じでしょうか?アドバイスお願いします。
505 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:40:23 ] >>504 -[NSString UTF8String] のドキュメントを読みなさい。 ちゃんと注意が書いてあります。
506 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 22:17:39 ] >>504 NSXMLDocument つかえば?
507 名前:504 [2009/11/09(月) 02:02:48 ] >>505 ありがとうございます。 もとのNSStringがreleaseされた時点でfreeされちゃうんですね。 うまくできました。 ドキュメントよく読みます。
508 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:32:01 ] iPhoneの開発で初めてObjective-Cを使ったが、良いねこれ。 最初はメソッド呼び出しの[]がきめぇwwwwって感じだったんだが、 デフォでリフレクションできるのは良い。 C++よりこっちが普及していれば自分のプログラマ人生も幸せだったのかもしれない、 と思う今日この頃。
509 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 13:06:25 ] リフレクションって何?
510 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 13:52:19 ] RTTIのすげぇやつ
511 名前:508 mailto:sage [2009/11/10(火) 15:25:49 ] つくづく思うのがC++のvirtualってナンセンス。 id型に何でもぶちこめるのもイイ。まさかCでこんな風に扱えるとはね。 メソッドのprivate/publicの定義ができなかったり不満もあるけど。