[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 12:16 / Filesize : 248 KB / Number-of Response : 975
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Objective-C [ObjC part:4];



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

802 名前:デフォルトの名無しさん [2010/03/03(水) 23:57:28 ]
まだ、ソフトもハードも無いので、勧めセット一式はソフトハードセットでお願いできるとありがたいです。

803 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:00:59 ]
スレ違い。死んでくれ。

804 名前:デフォルトの名無しさん [2010/03/04(木) 00:01:26 ]
Objective-C気持ち悪い

805 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:03:08 ]
じゃあ Objective-C は代わりにおじさんがやっておくわ

806 名前:デフォルトの名無しさん [2010/03/04(木) 00:04:27 ]
Appleて、現代的な言語作ってないんだよな

807 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:05:47 ]
ObjC が最強過ぎるからな

808 名前:デフォルトの名無しさん [2010/03/04(木) 00:11:26 ]
Objective-Cなんて糞は正直触りたくない

809 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:15:36 ]
代わりに俺が触っておくから、寝てて良いよ

810 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:19:24 ]
お前に触られるぐらいなら死んだ方がまし



811 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:21:25 ]
いや、お前を触るわけじゃねえw

812 名前:デフォルトの名無しさん [2010/03/04(木) 00:25:01 ]
>>803-811
マジ頭おかしいんじゃね、お前ら
樹海にいって首つって死ね

813 名前:デフォルトの名無しさん [2010/03/04(木) 00:26:21 ]
iPhone作りたいんですけど、なにせwin野郎なんでMac全然勝手が分かりませんw
とりあえずiPhone用の開発環境揃えたいんですけど、お勧めセット一式誰かお願いできますか?
あと、windows系とのネットワークファイル共有って簡単にできるでしょうか?
まだ、ソフトもハードも無いので、勧めセット一式はソフトハードセットでお願いできるとありがたいです。


814 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:26:55 ]
>>802
ソフトは登録してダウンロードするだけだよ
ハードは現行機種なら何でも良いけど、メモリ多めの方が何かと良いよ

815 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:34:15 ]
>>801-813
このスレ荒らして何の得がある……

816 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 01:28:26 ]
>>813
iPhone作りたいなら中国の工場に就職しろ

817 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 01:57:20 ]
>>813
こんな質問してるくらいだから、多分無理なんだろうな。
下手に教えないほうがいいぞ。手を出し始めたらこのスレがくだらない質問であふれかえってしまう。

818 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 02:48:17 ]
>>813
MacProとCinemaDisplayオススメ
あとFinalCutStudioとLogicかな。
なんやかや結局揃えるハメになるので最初にまとめて買っておくが吉。
ノートで十分とか言う奴がたまにいるが、デスクトップだとアプリのビルド時間が断然早く作業効率が非常に良い。
Windowsとの共有は簡単にできるよ。

819 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:30:42 ]
とりあえずインテルのMac mini買えばあとはオンラインで全部そろう
それでエミュレーションで動かしてから考えるといいんじゃないかな

820 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 15:41:41 ]
>>818
どもどもです、とりあえずそれでいってみようかと思います。
リソースの編集もMac側でやった方が効率いいですかね?
コードだけそっちで作ってみようかと目論んでいたのですが・・・



821 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 16:16:18 ]
>>820
どっちでもいい。
あと最初にしっかりガンマ特性や色温度の管理うぃやっておけば、
実機で印象が変わったりジャギーが目立つ等の問題も避けられる。
(ある程度までは、だけど)

822 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 17:22:02 ]
>>818
アプリのビルド時間が早くなるって、どういうことだ?

823 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 18:21:28 ]
マシンの性能差だろ。

824 名前:デフォルトの名無しさん [2010/03/07(日) 01:53:25 ]
iPhone用のアプリを作っていますが、NSDictionaryの使い方で悩んでいます。

以下の1行で、プログラムの実行が異常終了してしまいますが、理由がわかりません。どなたかヒントをいただけませんか?

sControls = [NSDictionary dictionaryWithObjectsAndKeys: display1, card1, display2, card2, display3, card3, display4, card4,nil];

ただし、
IBOutlet UILabel *display1;
IBOutlet UIButton *card1;
IBOutlet UILabel *display2;
IBOutlet UIButton *card2;
IBOutlet UILabel *display3;
IBOutlet UIButton *card3;
IBOutlet UILabel *display4;
IBOutlet UIButton *card4;
です。

最初は、card1〜card4のいずれかがnilで、その結果NSInvalidArgumentExceptionが起きているのでは?とデバッガで値を検査しましたが、そうではありませんでした。


825 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:55:31 ]
デバッガのコンソールメッセージは以下の通りです。
よろしくお願いします。

2010-02-24 00:15:27.446 XXXXXXXXXXX[69972:207] *** -[UIRoundedRectButton copyWithZone:]: unrecognized selector sent to instance 0x3b14a50
2010-02-24 00:15:27.447 XXXXXXXXXXX[69972:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIRoundedRectButton copyWithZone:]: unrecognized selector sent to instance 0x3b14a50'
2010-02-24 00:15:27.449 XXXXXXXXXXX[69972:207] Stack: (
29258843,
2531099913,
29640763,
29210230,
29062850,
28990666,
28990186,
28988857,
10209,
3209026,
9269,
2692555,
2730422,
2718516,
2700927,
2728033,
37354841,
29043584,
29039688,
2694677,
2731951,
9184,
9038
)


826 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 03:14:30 ]
一旦MutableDict 作って、一個ずつKey と Objectを設定してみろ。

827 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 03:44:06 ]
>>824
keys must conform to the NSCopying protocol

828 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 19:35:03 ]
メソッド名を良く読めって話だな。割と罠ポイントだとは思うがw

829 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 02:05:24 ]
もうvisual studioもeclipseも触りたくない。

830 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:14:51 ]
そんなあなたにNetBeans



831 名前:デフォルトの名無しさん [2010/03/20(土) 09:23:49 ]
live.nicovideo.jp/watch/lv13400073

832 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 09:43:57 ]
ニコ厨死ねよ

833 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 23:17:05 ]
口半開きってやっぱダメだな

834 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 18:03:17 ]
あの、ポインタに対して使う * っていうのは、内容を複製して渡すのでしょうか?

例えば、NSTextField* field があったとして、

isnumber(*[field.text UTF8String])

としたとしますよね。この場合、[field.text UTF8String] だけで渡そうとすると
ポインタだからダメ、みたいな感じで怒られますが、*を付けるという事は
その中身を渡すという事ですよね?

中身を渡すというのは、そのポインタが指す中身を複製してその関数に渡して
いるのでしょうか?

質問がうまく伝わっていなかったらすみません。どうも中身を渡すというのが
どういう意味なのかがよく分からなくて…。Objective-C 以前に C が分かって
いないのでおかしな事を言っていたらすみません。

835 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 18:05:36 ]
すいません、NSTextField -> UITextField の間違いでした。

836 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 18:54:43 ]
>>834-835
Cは(Objective-Cも)値渡しだから、ポインタだろうがなんだろうが
渡すときは常に中身がコピーされる。
ポインタを渡したときは、コピーされるのはポインタの値だから
中身はコピーされないな。
中身を渡したら中身がコピーされるだろう。

837 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 18:56:42 ]
>>836
中身っつうか、渡したものが常にコピーされるってことね。
分かりにくかったらすまん。

838 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 20:18:47 ]
>>834
>あの、ポインタに対して使う * っていうのは、内容を複製して渡すのでしょうか?
合ってる、けど「中身」が何であるか勘違いしないように

[field.text UTF8String] は char * を返すんだが、この場合の中身は
先頭の1文字であって文字列全体じゃないからな

839 名前:834 mailto:sage [2010/03/23(火) 16:42:01 ]
>>836
ありがとうございます。

ポインタを渡したらそのポインタの値がコピーされるという事ですよね。

>>838
ありがとうございます。

そうそう、そこも不思議だったんですよね。実際に isnumber はどう
処理しているのでしょう?アドレスに1ずつ足していきながら NULL 文字
がくるまでを文字列と判断するのでしょうか?

ソースを探したんですが見つからなくて…。

840 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 17:52:23 ]
isnumber が扱うのは「(所謂)文字列」ではなく「文字」だよ。



841 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 22:07:21 ]
>>839
>アドレスに1ずつ足していきながら
「文字列」(char *、つまり連続した文字の先頭へのポインタ)を受け取る関数についてはその通り
ただ isnumber は >>840 が言うとおり「文字」(char)を受け取って、
その1文字が数字どうかを判別する

842 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 22:59:21 ]
>>840, 841
げげっ!そうなんですね、という事は、何らかの NSString が数値として
解釈できるかどうかは、何か別の方法で判定しなくてはいけないという事ですね。

Objective-C というよりは Cocoa っぽい話題で申し訳ないですが、皆さんは
ある NSString が数値として解釈できるかどうかはどの様に判定していますか?

843 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 23:19:09 ]
NSNumberFormatter ?

844 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 23:20:20 ]


845 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:04:21 ]
>>843
NSNumberFormatter 使ってみたんですが、例えば aiu6 とかが蹴られるのは
いいんですが、6aiue とかやると解釈されちゃうんですよね。

厳密モードみたいなものがあるのかと思ったんですがないし…。

正規表現とかでやるしかないんでしょうか。と思ったら Cocoa には正規表現を
するためのクラスがないんですね、ガーン…。困った…。

846 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 06:32:26 ]
ogrekit

847 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 12:31:40 ]
-[NSNumberFormatter getObjectValue:forString:range:error:]
が使えるんじゃないかな。

自分は libc の strtol() 系で事足りてるから使ったことないけど。

848 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 22:49:40 ]
sscanf()のObjective-C版が欲しいと思ったことありませんか?

UTF-8が処理出来るとかなり違うかと思うのですが。

849 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 22:51:07 ]
NSScanner

850 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 01:53:35 ]
>>847
やってみたんですが、やはり 0aiu みたいなものは解釈されてしまうみたいですね。
しょうがないので、数値かどうかを判断する関数を作り、とりあえずそこで数値と
判断したものだけ実際に数値に変換させる様にしました。

どうもおさわがせしました。でもなんか楽しいですね、Objective-C を頑張って
覚えたいです。



851 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 13:48:33 ]
>>850
range:

852 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 15:06:47 ]
-getObjectValue:...より簡単な-numberFromString: は使ってみたか?
自分の環境では6aiueはNULLを返す。
厳密モード的な動作は -setLenient: で切り替えられると思うが,NSNumberFormatterのAPIページくらい目を通したか。
ただ6aiueの解釈には影響ないみたいだが。
あるいはgetObjectValue:...を使いたいなら >>650 の通りだな。

853 名前:834 mailto:sage [2010/03/25(木) 18:27:08 ]
>>852
ありがとうございます。

もちろん numberFromString は使ってみたのですが、普通に
数値として返ってきてしまうので困っていました。

setLenient も指定してみましたが、効果がありませんでした。

やり方がいけなかったんですかね…。家に帰ってもう一度やってみます。

854 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 09:20:21 ]
shouldNotImplement: や notImplemented: って、
may not respond to '-notImplemented:'
ではなくするには何をインポートすれば良いんだ?

#import <objc/Object.h>
やっても意味無いようだけど。

当方OSX 10.6。


855 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:25:59 ]
>>854
- (id)hogehoge {
return [self notImplemented:nil];
}

こうなってんじゃないの?
子クラスで -hogehoge を再定義すれば

856 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 15:27:23 ]
>>855
? いや、
- (void)hoge {
[self notImplemented: _cmd];
}
をエラー無くビルドしたいんだけど。notImplementedされてるクラスを云々じゃなくて、自分でnotImplementedしたいんだ。
今クラスクラスタ作ってるところで。

857 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 02:16:08 ]
>>856
ああすまん
自分で空の -(void)notImplemented: を定義すりゃいいんじゃね

858 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 00:45:54 ]
NSArray* array = [NSArray arrayWithObjects:@"a",@"b",@"c",NULL];

みたいな、オブジェクトをカンマで区切って複数指定できるメソッドって、
定義する側ではどう書くのでしょうか?

もしや、カンマで区切って繋げると自動的に NSArray に変換してくれたり
しているんでしょうか??

859 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 01:45:11 ]
可変長引数でググレカス。

developer.apple.com/mac/library/qa/qa2005/qa1405.html

あと Foundation クラスの実装例が見てみたいなら CF や libFoundation のソースでも読んどけ。
www.google.com/codesearch/p?#_rn0kgFhkQA/redir/sope/55519/url_tgz/sope-4.5.4-nevermind-r878.tar.gz|EGqseItem4o/sope/libFoundation/Foundation/NSArray.m

860 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 02:30:46 ]
先生、「可変長引数」という単語を知らない人はどうなりますか…。

という冗談は置いておきまして、ありがとうございました。

ただ、可変長引数という単語で検索してもほとんどきちんと解説している
サイトってないですね…。「va_list」とか「va_start」とか一体何者なのか
分かりませんし…。まぁとにかくそのあたりから調べてみる事にします。

ありがとうございました。



861 名前:デフォルトの名無しさん [2010/04/05(月) 12:54:31 ]
これだからゆとりは

862 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:26:03 ]
ダイナミック本ってどうなの

863 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:20:27 ]
索引付いてないし装丁も粗いし、Webの奴読んでりゃ良いと思うよ。

864 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 18:52:14 ]
最近のプログラマーはやった物勝ちなんだな

865 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 14:39:34 ]
objc2 runtime 関数 const char *class_getIvarLayout(Class cls); について質問です。
この layout というのは、どういうものなのでしょうか?
ソースコードを調べていくと、objc-runtime-new.h に
class_t 構造体->class_rw_t 構造体->class_ro_t 構造体->uint8_t *ivarLayout
となっていて uint8_t*型だとわかりましたが、何の値を示すものなのでしょう?
よろしくお願いします。


866 名前:865 mailto:sage [2010/04/14(水) 15:44:41 ]
解決には至っていませんが… objc-layout.m に GC につかうもの、っぽいことが
書いてあります。が、いまいちどうなっているのかよく分からないので、
ご存知の方がいらしたら、ご教示お願いいたします。
/**********************************************************************
* Object Layouts.
*
* Layouts are used by the garbage collector to identify references from
* the object to other objects.
*
* Layout information is in the form of a '¥0' terminated byte string.
* Each byte contains a word skip count in the high nibble and a
* consecutive references count in the low nibble. Counts that exceed 15 are
* continued in the succeeding byte with a zero in the opposite nibble.
* Objects that should be scanned conservatively will have a NULL layout.
* Objects that have no references have a empty byte string.
*
* Example;
*
* For a class with pointers at offsets 4,12, 16, 32-128
* the layout is { 0x11, 0x12, 0x3f, 0x0a, 0x00 } or
* skip 1 - 1 reference (4)
* skip 1 - 2 references (12, 16)
* skip 3 - 15 references (32-88)
* no skip - 10 references (92-128)
* end
*
**********************************************************************/

867 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 22:29:58 ]
コメントを読んだ感じだと、
あるオブジェクトが他のオブジェクトを参照するのに使っているポインタ領域が
どのオフセット位置にあるのかを表しているように読める。
例として書いてある { 0x11, 0x12, 0x34, 0x0a, 0x00 } だと、
各々の上位ニブル(= 4 ビット)分スキップしてと下位ニブル分だけワードを読むことになっているので、
まず、 0x11 で 1 ワードスキップして 1 ワード見る
次に 0x12 で 1 ワードスキップして 2 ワード
0x3f で 3 ワードスキップして 0xf = 15 ワード
0x0a で現在のワードから(= 0 ワードスキップ)10 ワード見る。
0x00 = '¥0' で終端。
1 word = 4 byte = 32 bit で、オフセットが 4, 12, 16, 32-128 の位置のワードが表されている。
このメモリレイアウトに従ってメモリ領域を見ればオブジェクトの参照関係がわかる。
という感じかなあ。 Ivar は Instance Variable の略じゃないかと。
GC については最近出た本を参照。

868 名前:865 mailto:sage [2010/04/15(木) 20:40:07 ]
>>867
「ニブルの上位下位」のところがよく分からなかったんですが、なるほど、
そういう意味だったんですね。分からなかった「ニブル」の意味も何となく
分かりました。ありがとうございます。
もう一つお教えください。GC についてですが、最近新しい本が出たのでしょうか?

869 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 20:56:05 ]
> 868
byte : 8 bit
nibble: 4 bit

これはbyte -> bite (かじる)にひっかけて
「ちょこっとかじる」という意味のnibbleをbyteの半分を
指す様になった。 ほとんど冗談の様なネーミング。 


870 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:06:47 ]
じゃあニブルはニップルをかじってるのか



871 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:06:49 ]
英語版のwikipediaによると、bite->byteにひっかけて
nybbleとスペルしたり、かならずしも4bitではなくて
5bitや6bitに使われた場合もあったそうだ。 また、
用語の起源はIBMのメインフレームらしい。

en.wikipedia.org/wiki/Nibble


872 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:09:17 ]
byte -> bite じゃなくて
bite -> byte だよね
bite が byte の語源

873 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:13:07 ]
継手のニップルってそのまま形から来てるのか

874 名前:865 mailto:sage [2010/04/15(木) 21:14:47 ]
>>869
レスありがとうございます。
その話、何かで見たことがありました!完全に忘れていましたが・・・
おかげでもう忘れない気がします(笑)

875 名前:865 mailto:sage [2010/04/15(木) 21:16:46 ]
あれ、書いてるうちに… みなさん、ありがとう。

876 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 23:49:00 ]
>>868
GC の本っていうのは ttp://www.amazon.co.jp/dp/4798025623 のこと
オブジェクトの参照関係が GC でどう使われるかに興味があるんだったら
読んでみるといいかもしれない

ところで byte = 8bit じゃない計算機もあったよね
そのために 8bit を明示するときは octet と言ったり

877 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 13:30:37 ]
ちくびと聞いて

878 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 13:04:34 ]
+(void)hoge;

じゃなくて
+hoge;
って宣言を見かけたんだが、これはなんだ?

879 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 13:16:13 ]
int hoge;

880 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 15:17:16 ]
+ (id)hoge;
だよ。



881 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 21:32:43 ]
hage

882 名前:865 mailto:sage [2010/04/19(月) 09:30:11 ]
>>876
カメレスでごめんなさい。本の情報ありがとうございます、手に入れて読んでみます。

883 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 22:04:45 ]
@interface MyObject : NSObject
+ (void)hoge;
- (void)piyo;
@end
@implementation MyObject
+ (void)hoge { NSLog(@"hoge");}
- (void)piyo { NSLog(@"piyo");}
@end

@interface MyMyObject : MyObject
@end
@implementation MyMyObject
+ (void)hoge { NSLog(@"hogehoge");}
- (void)piyo { NSLog(@"piyopiyo");}
@end

@interface MyMyMyObject : MyMyObject
@end

となってて、MyMyMyObject で祖父クラスのメソッドを呼ぶ時って、
@implementation MyMyMyObject
クラスメソッドの場合はコレで良いとして、
+ (void)hoge {
[[[self superclass] superclass] hoge];
}
インスタンスメソッドの場合は、IMP取得くらいしかないのかね?
- (void)piyo {
IMP imp = class_getMethodImplementation([[self superclass] superclass], _cmd);
(*imp)(self, _cmd);
}
@end
supersuper とか無いし。

884 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 10:24:01 ]
>>883
親でover-rideされてるにも関わらず祖父を直接見るなんて、そもそもの設計が大間違いなのでは?
と Obj-C 初心者が言ってみる。

885 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 10:40:05 ]
メッセージングでやる場合。
- (void) piyo {
struct objc_super superSuper = {self, [[self superclass] superclass]};
objc_msgSendSuper(&superSuper, _cmd);
}
あとは、class_replaceMthod 等でメソッド入れ替えなども可。

886 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 12:46:27 ]
[[self superclass] superclass]とかやると、
MyMyMyObjectのさらにサブクラスを作ったときにハマるな。

887 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 16:42:25 ]
[self superclass] == [super superclass] であることを知って驚いた14の春

888 名前:デフォルトの名無しさん [2010/05/01(土) 11:17:15 ]
 

889 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:55:50 ]
>>887
ほんとだ。なんでこうなるの?

890 名前:デフォルトの名無しさん [2010/05/01(土) 20:43:49 ]
superclassメソッドをサブクラスでオーバーライドしないかぎり、[self superclass]とやっても、[super superclass]とやっても、呼び出されるメソッドは同じ。
さらに、[self superclass]も[super superclass]も、レシーバーはselfになる。
詳しくは、Objective-Cのruntime APIを見てください。



891 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2010/05/06(木) 17:31:55 ]
>>883
祖父クラスが基本的なメソッドを提供していて、子クラスでオーバーライドしたんだけど
孫からも基本的な処理へのアクセスが必要だというような場合は祖父クラスで hoge を
basicHoge として別名でも提供しておくという Smalltalk 流の作法で済ませられない?

892 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:40:25 ]
スレ違いかもしれませんが質問ですm(_ _)m

NSData型の変数に4バイト、例えば
0x00 0x00 0x00 0x7F
と入ってる場合、これをInt型の127に変換するには
どうすればいいのでしょうか?

893 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:37:17 ]
int a = CFSwapInt16(*(SInt32*)[data byte]);

894 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:39:00 ]
ミスった

895 名前:892 mailto:sage [2010/05/09(日) 12:02:34 ]
回答&ヒントありがとうございます。
int a = CFSwapInt32HostToLittle(*(SInt32*)[data bytes]);
で、まだ意味はぼんやりとしか分かってないですが、
無事期待の動作が得られました。

896 名前:デフォルトの名無しさん [2010/05/18(火) 10:45:41 ]
質問です。iPhone用プログラムを書いていますが。

NSInteger index = random() % count;
NSInteger index2 = random() % count;
while(index2 == index) {//同じにならないように
NSInteger index2 = random() % count;
}

とやって、二種類のランダムな数字を発生させようとしていますが、
何度かランダム数を発生させるとプログラムがストップしてしまいます。
なにがいけないのでしょうか。どなたかご教授願います。


897 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 10:55:35 ]
NSInteger index = random() % count;
NSInteger index2 = random() % count;
while(index2 == index) {//同じにならないように
NSInteger index2 = random() % count; // このindex2と前のindex2は別物
}


一つ目のindex2と二つ目のindex2は別物です。 


while(index2 == index) {//同じにならないように
 index2 = random() % count; // 宣言しない
}

としてください。


// 変数が隠されてしまっている とか警告出ませんでした?

// 変数スコープとかその辺の話も調べてね

898 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 10:55:36 ]
日本の未来が心配です。

899 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 11:06:39 ]
あまりにもあんまりな問いで最初何が駄目なのかわからなかった

900 名前:896 mailto:sage [2010/05/18(火) 11:35:51 ]
>>897
うぉぉ、当たり前ですよね。コピペしてたのが間違いでした。
ホントにあんまりな質問に回答して頂き、ありがとうございました。感謝感激です。
あ〜恥ずかしい。



901 名前:デフォルトの名無しさん [2010/05/18(火) 14:20:24 ]
すみません、質問させてください。
iPhone用アプリのプログラムを最近始めた初心者です。
<質問>
iPhoneから外部DB(postgreSQL)に接続する手法がわかりません。

色々調べましたがピンと来なかったのですが、Object-Cから直接DBConnect
するような方法は無いのでしょうか?
XCode自体、初心者なのでよくわからないのですが、
1. Ruby?を利用する
2. java+JDBCを利用する
のような感じになるのでしょうか。
ヒントだけでも教えていただけたら助かります。
宜しくお願い致します。

902 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 14:46:11 ]
ググレカス






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<248KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef