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


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

Objective-C [ObjC part:3];



1 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:18:31 ]
Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
 (Wikipedia:ja.wikipedia.org/wiki/Objective-C より)

前スレ
pc11.2ch.net/test/read.cgi/tech/1106983092/
前々スレ
pc5.2ch.net/tech/kako/990/990574267.html

652 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 23:52:57 ]
>>651
何を引き受けているのかってことかな?

確かにNSViewって不思議。
他のオブジェクトだったらIBとXcodeはアウトレット、アクションとコントラーを介して
つながっているけど、NSViewってクラスでそのままリンクさせることができるもんね。



653 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:29:12 ]
>>652
確かにcocoaで良くわからないところだった。
NSTextViewでもコントローラーをソースとして登録しておくって考え方も
.net出身者としては腑に落ちなかった。

654 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 09:03:01 ]
そのあたりはいくらでも説明しますが、
何が疑問なのか曖昧すぎてわからないので、もうちょっと詳しく書いてくれませんか?
>>651 さんとかどの関数の話をしてるの?
>>652 はなにがいいたい?クラスでそのままリンクって?
>>653 はどういうこと?コントローラをソースとして?ソースって何?

655 名前:651-652 mailto:sage [2008/10/10(金) 14:21:46 ]
>>654
ドモ、ありがとうございます。超初心者です。

このサイトにあるGraphic関数です
homepage.mac.com/mkino2/cocoaProg/AppKit/GraphicFunctions/GraphicFunctions.html#overview

疑問1
このサイトで四角形を描写させるためのサンプル全ての関数において
NSFrame型のframeRectっていう仮引数をうけとっているよね。
でも関数の中身をみるとそんな仮引数を利用している形跡がない。
別に宣言する必要が無いのでは?というのが最初の疑問。

疑問2
サンプルコードをダウンロードしたプログラムにはコントローラー(青色の立体箱)がなかったんですよね。
僕はIBで作成したインターフェイス部分とX-codeで記述したコード部分を繋ぐためには
コントローラーでアクションとアウトレットで接続する必要があるって理解していたから
コントローラーがなくてなんでX-codeで記述した関数がインターフェイスに反映されるのか全く分かりませんでした。

そしたらこのサンプルではIBのNSViewのクラス名部分がX-codeで作成したクラスに
なっていたんです。
これはコントローラーが介在していないってことですよね。?



656 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 15:18:45 ]
>>655
NSViewのサブクラスは -drawRect:(NSRect)frame;をオーバーライドして描画をやります。
で frameにはview自身の大きさが入ってきます。
ので、それに習っただけでしょう。

DLしてないけど、多分NSViewのサブクラスがwindowに貼り付けてませんでしたか?
最後の段からすると多分そうなってるんだと思うけど、
そうしておくと、nibロード時にサブクラスを作ってそこに貼り付けてくれます。
(実際には違いますがイメージはそんな感じです)
で、NSViewのサブクラスの
-drawRect:(NSRect)frame;
で描画処理が行われているはずです。

657 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 15:20:24 ]
コントローラはデータを扱うクラスですので、データを使ってなければ不要です。

658 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 15:53:59 ]
>654じゃないですが、こんな感じじゃないでしょうか。

答え1
- (void)drawRect: (NSRect)frameRect は nib (xib) が読み込まれて初期化する
時や絵を書き直す過程で呼ばれる。frameRect は描画する場所を限定する為のもの。
描画効率upの為に customView の一部に限定する事もできる。初期化の時は多分、
customView.bounds で view の全体を描画させているんだと思うな。

答え2
コントローラは介在していない。ていうか、MVC の View を直接いじっていて、
Model、Controller が無い状態。

と、書いているうちに >656 さんが書いてくれましたね。customView が直接 window に
貼付けられていました。

659 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 20:40:38 ]
>>653
> .net出身者としては腑に落ちなかった。

そこがCocoa(MVCパターン)と.NET(n層パターン)のアーキテクチャの違いというやつだ。
MVCのViewは、主に描画だけを行いデータの保持や管理をしない。Model内でデータを更新すると、それに連動してるViewが勝手に再描画される感じ。
n層パターンだと、ビジネス層で処理したデータをプレゼン層に送りこんで、プレゼン層側でデータを保持したり処理したりする。

660 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 01:07:34 ]
>>639
書いてるのはシロタンですぞw

retain count方式の説明に微妙に誤解を招きそうな表現があった気がした。



661 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 11:50:01 ]
>>656-658

イメージとしては理解できました。
本当にありがとうございます。


662 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 23:32:59 ]
10.5以降にはNSViewControllerがある

663 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 22:59:05 ]
x-codeで開いたソースファイルの文字を大きくしたいんだけど、
やりかた知ってますか?

一応必死に探したんだけど見つかりませんでした。


664 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 00:07:56 ]
環境設定 -> フォントとカラー

665 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 02:22:42 ]
>>663

>>664の場所にあるよ。
フォントサイズのみの指定って感じのインターフェイスじゃないからわかりにくいっちゃあわかりにくい。
フォント名をダブルクリックしてフォントパネルの中で指定。

666 名前:663 mailto:sage [2008/10/22(水) 20:35:04 ]
>>664-665
ありがとう!
フォントサイズをこんなにも決め細やかに設定できるなんてすばらしすぎる。
背景もモダンにして高級感たっぷり。

ありがとう!

667 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 21:51:10 ]
>>659
なるほど。
だから
.NETではインターフェイスに入力したデータがコードにも受け継がれるけど、
cocoaの場合はインターフェイスに入力したデータはコードでは受け継がれずに
関数で取りに行く必要があるのか。
めんどくさいよね。これ。

668 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 22:53:40 ]
>>667
つまり
textBoxの値をlabelに反映するだけのアプリケーションで説明すると

.netの場合
labe.text = textBox.text;
で終了。

cocoaの場合
labeField = [NSTextview setStringValue : textField];
さらにIBでlabelField,textFieldをアウトレットでコネクトする必要あり。

面毒せー!
でも高度なテクニックはcocoaのほうが分かりやすいんだよなー

669 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 22:56:19 ]
なんでも関数にするからだめなんだよ。

.netはcocoaを見習いようがないけど、cocoaは.netを見習えるような気がする。


670 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 23:36:30 ]
BaseTenがダウンロードできないんだけど・・・・・なんで?




671 名前:デフォルトの名無しさん mailto:age [2008/10/27(月) 23:53:43 ]
頭わる…晒しage

672 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 00:02:21 ]
かかって来い!

673 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 00:52:53 ]
>>668
>cocoaの場合
>labeField = [NSTextview setStringValue : textField];
>さらにIBでlabelField,textFieldをアウトレットでコネクトする必要あり。
何年前の話をしてるんだ?
10.3 のときから、そんなのはコードを一行も書かなくても
Interface Builder でバインディングをすればできるわけだが ...
developer.apple.com/jp/documentation/Cocoa/Conceptual/CocoaBindings/
とかみろ。もっと新しい英語版はこちら:
developer.apple.com/documentation/Cocoa/Conceptual/CocoaBindings/CocoaBindings.html

674 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 01:02:43 ]
>>673
ありがとー

実は入門書しか読んでねー。

675 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 23:21:44 ]
もうちょっと活発に議論してほしい・・・・・・。

そこでバインディングについて簡単に説明して。
一体どんなすごいことが出来るの?

676 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 00:01:21 ]
バインディングは議論するほどたいしたことじゃないし、
最近 Cocoa やってるひとなら常識だから。

View と Controller 間の glue
>.netの場合
>labe.text = textBox.text;
>cocoaの場合
>[labeField setStringValue : [textField stringValue]];
を書かなくてよくなるだけです。

インターフェースビルダーで、各 UI 要素が controller のどの変数を
監視/設定するかを設定出来るという機能です。(それだけじゃないけど。)
一番簡単な例は、controller に a という変数を用意して、
label も textfield も a を監視するように設定できます。
そうすると、textfield の内容が変更されると、自動で a が変更されて、
それに伴ってそれを監視している label も自動で変更されると。

別に凄いことじゃないです。

>>673
に引用されてる先を読んでください。

677 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 00:02:41 ]
書きわすれましたが、
.net でも WPF だったか XAML だったかで同様のことができるんじゃなかったっけ。

678 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 01:52:23 ]
週刊アスキーを読ませてもらった、大金持ちになりたいです。

679 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 02:11:38 ]
>>675
outletを用意しなくても済むため、コード量を劇的に減らすことができるって、HMDTさんが言ってた。
developer.apple.com/jp/documentation/Cocoa/Seminar/Cocoa3/1.CocoaBinding.mov

680 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 23:06:49 ]
>.netの場合
>labe.text = textBox.text;
>cocoaの場合
>[labeField setStringValue : [textField stringValue]];

いちおう、cocoaでも
labeField.stringValue = textField.stringValue;
と書ける。objc2.0なら






681 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 23:37:41 ]
明示的にプロパティじゃない setter をプロパティ構文つかうのは
Apple 的には推奨してるんだっけ?

developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_2_section_3.html

anObject.retain はするなとかいてあるが
.stringValue はいいのかな。

682 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 16:53:15 ]
>>681
その文書を読む限り推奨も否定もしてないようですね。
ただ、書いてる内容を総合的に見れば、ドット構文を一般的なメソッド呼び出しの代替えとして使うな、ということのようだから、ちゃんとしたアクセッサメソッドならドット構文を使ってもいいんじゃないかな。
とりあえず、コンパイルエラーとかも出ないし。


683 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 01:31:54 ]
ボタンを押したらピコーンて音声ファイルが再生されるようにしたいんですけど
なんて書けば良いんでしょうか・・。超低レベル質問なのは分かってるんですけども

684 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 02:34:21 ]
>>683
AppleのドキュメントとかAPIリファレンスとかでそれっぽいとこ探せばいいのでは?
そこで分かったそれらしいクラス名なりメソッド名とかを使ってググるとか。
APIリファレンスとかにはそのメソッドとかを使ったAppleのサンプルへのリンクがあったりするからそれを見てみるとか。

ClashLandingってAppleのサンプルにそれっぽいのがあるらしい。



[オーディオ] - iPhoneアプリケーション開発
d.hatena.ne.jp/iphone_dev/searchdiary?word=%2a%5b%a5%aa%a1%bc%a5%c7%a5%a3%a5%aa%5d

試してみるとか?

俺も再生の仕方とかわからない・すまない。

他に詳しい方おしえてあげてください。

685 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 03:39:08 ]
>>683
質問するスレはCocoa はさっぱり
pc11.2ch.net/test/read.cgi/mac/1224960170/
のほうが適当だとおもいますよ。
あと、質問するときはどのていどまで Cocoa を知ってるのか書いてください。
Interface Builder つかってボタンを表示する方法はしってるのかとか。
ではあちらのスレで会いましょう。

686 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:01:44 ]
>>684
ありがとうございますとりあえず音は出せるようになりました!
半日かかりましたけどw
>>685
見落としてました。そのスレが自分向きですね
教えて君にならないよう頑張ってみます

687 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 17:01:52 ]
ttp://blog-imgs-40.fc2.com/n/e/t/netamichelin/2008110206.jpg

688 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 02:19:43 ]
NSTimerのscheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
関数を使って一定間隔ごとにある関数を呼び出すタイマークラスを作成したいのですが、
上手くいきません。

targetに問題があるのかなと考えているのですが、
メイン関数でタイマークラスを作成し上記の関数をよび出す場合、
targetはselfでいいのでしょうか?







689 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 09:11:25 ]
僕らは超能力者じゃないんだからもうちょっと詳しく書いてもらわないとわかりません。
main 関数ってほんとに C の main() ?
それだと NSTimer うごかないよ。Runloop 回さないと。
あと、この質問は Objective-C プロパーというより
たぶん Cocoa の話なので、>>685 にもあるように
新マック板の Cocoa スレに行ってください。

690 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 09:25:56 ]
>>688
おそらく NSTimer はちゃんと出来ているけど、NSRunLoop に渡してないだけな気が
しますが…… NSRunLoop の addTimer:forMode: を参照



691 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/17(月) 04:06:06 ]
Objective-Cで定数って普通どうやって定義するのかな?
Javaみたいに、関係あるクラスの中で定義して、AClass.CONST_A_VALみたいに使いたいんだが。

692 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 04:42:09 ]
できません。
Global namespace に大量に定数を定義するのが Obj-C 流。
(あまりいいことではないとおもうけど、そういうものなんだからしかたがない。)
そのかわり定数の名前がかなり(めちゃくちゃ)長くして衝突をさけます。
NSUTF8StringEncoding
とか
NSApplicationDidUnhideNotification
とか。
Java なら NSApplication.DidUnhideNofitication とかするところを
点を一個抜く感じだと思います。

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/17(月) 05:02:17 ]
>>692
うう、そうですか。
それがObjective-C流ならしかたない(泣。
defineとconstではどっちの方がいいんでしょう?

694 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 05:38:41 ]
う〜ん、普通は .h では const extern にしておいて、
.m で実際の値を定義するんじゃないですかね?
少なくとも Cocoa の標準ヘッダではそうなってますし僕もそうします。

Obj-C というか C だと const の中身までヘッダにかくと
リンク時に衝突するとおもいます。ご存知なら失礼。

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/17(月) 10:45:31 ]
>>694

いや、とても参考になりました。
ありがとうございます。

696 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 17:46:29 ]
Obj-CからIllustratorドキュメントを操作する場合って直接は無理ですよねぇ…
JavaScript書いてそれをObj-Cから実行って感じですか?

697 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 00:32:39 ]
.ai のフォーマットを知ってたら直接操作出来るんじゃない?
Mac 上でやるんなら JavaScript だけじゃなくて AppleScript もつかえるでしょう。
Obj-C から AppleScript なら呼び出し放題だけど。
developer.apple.com/documentation/Cocoa/Conceptual/ScriptingBridgeConcepts/


698 名前:696 mailto:sage [2008/11/18(火) 16:10:37 ]
JavaScriptでいけた
ありがとー

699 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 11:49:45 ]
エトワレの 0.4 が出たよ。
etoileos.com/news/archive/2008/11/16/2300/
なんだか独自の方向に突っ走ってる気がするが...

700 名前:デフォルトの名無しさん [2008/12/02(火) 22:43:50 ]
>>699
(´・ω・`)ショボーン
imepita.jp/20081110/801860
imepita.jp/20081130/027170




701 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 03:22:21 ]
Obj-C で visitor pattern ってどうやるのがいいのかな?
上のほうで一度話題になりかけてるんだけど、
なんか急激に煽り煽られになっててよくわからん。

C++ なら
HogehogeVisitor* visitor にたいして
ループ{
element->accept(visitor)
} として、 element の accept メンバ関数で更に
visitor->visit(this)
となってるわけだけど。ネットの議論をいろいろ読む限り、
Obj-C では単に
HogehogeVisitor を追加したくなったところで、
各 element をカテゴリで拡張して
@class HogehogeVisitorInfo;
@interface/implementation FooElement (HogehogeVisitor)
-(void)doHogehoge:(HogehogeVisitorInfo*)hoge;
@end
@interface/implementation BarElement (HogehogeVisitor)
-(void)doHogehoge:(HogehogeVisitorInfo*)hoge;
@end
としてしまって
HogehogeVisitorInfo* visitorInfo=[[HogehogeVisitorInfo alloc] init];
ループ {
[element doHogehoge:visitorInfo];
}
でいい気がするんですが、もっといい方法ありますか?

702 名前:デフォルトの名無しさん [2008/12/19(金) 19:10:07 ]
objective-cってc++みたいにtemplateあるの?

703 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 19:21:55 ]
汎用型の id はあるが基本型は入れらんない。

704 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 06:36:47 ]

void CopyVector( double *v1, double *v2 ) {
v2[0] = v1[0];
v2[1] = v1[1];
v2[2] = v1[2];
}

は、以下だと駄目みたいですがどう書くのでしょう?

-(void)copyVector:(double *)v1 To:(double *)v2 {
v2[0] = v1[0];
v2[1] = v1[1];
v2[2] = v1[2];
}

705 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 06:55:08 ]
-(void)copyVector:(double *)v1 To:(double *)v2
このインスタンスメソッド自体にエラーが生じるの?

よければそのエラーの内容も書いてほしいんだけど・・・・・・・

それともただ単に仮引数V2に渡した引数にコピーされていないだけなの?



706 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:23:41 ]
インスタンスメソッドだと実体化したオブジェクトに引き渡されるだけで
本の配列には全く関係ないと思うんだよね。

v2のアクセッサメソッドを定義する方法もあるだろうけれど、
クラスメソッドにしてみてもだめ?


707 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:24:44 ]
double a[2][3];
a[1][0]=a[1][1]=a[1][2]=1.0;
copyVector:a[1] To:a[0];

とすると、copyVector のところに、error: syntax error before 'To' と出てしまいます。

708 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:27:31 ]
それはいったい何をやっているの?

インスタンスメソッドだよね?
ちゃんとオブジェクトに送ってるの?

709 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:30:28 ]
+(void)copyVector:(double *)v1 To:(double *)v2 {
v2[0] = v1[0];
v2[1] = v1[1];
v2[2] = v1[2];
}
ということでしょうか? 結果は同じ様です。

710 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:34:28 ]

[self copyVector:a[1] To a[0]];

でどう?



711 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:35:17 ]
>>709
てかクラスでもインスタンスメソッドでも
オブジェクトにメッセージをおくらないと・・・・・


712 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:40:35 ]
copyVector:a[1] To:a[0];


・・・・・・・・・・そりゃToの前にエラーが出るわな。


713 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:43:14 ]
>>710 で解決した様です。この場合のself って何に当たるのでしょう?

714 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:46:15 ]
済みません解説をお願いしますう。>>712

715 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 07:47:15 ]
>>714
すみません。
突っ込んどいて解説なしはダメですよね。



716 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 08:18:48 ]
copyVector: (ラベルやね、ラベル!) a[1] (配列の要素になんか入れようってか!) (...さあ.代入コイ!代入!...) (ふじこ)To:a[0];

717 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 08:46:20 ]
>>716 何といいますか、おっしゃる事がよく分からないのですが。。。

718 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:18:41 ]
解説をお願いする前に C と Obj-C の文法をおさらいしたほうがいいと思うんだな

719 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 15:41:56 ]
self 知らずに Obj-C のプログラムが書けるわけが無いと思うんだが。

720 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 15:46:57 ]
最優秀Javaプログラマがよく作る
グローバルスタティックメソッドライブラリークラス
じゃないの?



721 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 18:46:28 ]
スーパーサイヤ人にはなれるけど、

空を飛べないサイヤ人みたいだ。

722 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 01:42:16 ]
今おさらい中です。

723 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 02:38:06 ]
>>711が全て。

selfは自分自身だよ。

724 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 02:56:14 ]
なんかやっと分かりつつあります。自分て言うのは、そのメソッドを持っているインスタンスということですね。

725 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 11:24:40 ]
人に聞く前に
せめて教科書くらいは読んだ方がいいと思うんだよね

726 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 12:15:25 ]
Obj-CよりC++勉強した方がいいよって、叔父さんに言われた(´・ω・`)

727 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 15:44:28 ]
叔父さんってどうせIT土方のクソドザだろ??
そんなには13インチのMacBookプレゼントしてやれ。

728 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 22:58:46 ]
両方勉強したって大した事でもない。

729 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 18:45:13 ]
おすすめのObj-C入門書教えてけろ
「やさしいC」みたいなのがいいっす

730 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 18:51:31 ]
NSString に入っているファイル名なテキストから拡張子を取り除きたいのですが、
対応するメソッドはありますか?
拡張子を取るなら NSString#pathExtension で出来ますが、それ以外の部分が欲しいのです。




731 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 19:14:02 ]
>>729,730
この手の話・質問はここよりも、新Mac板 Cocoaはさっぱり!!! の方がレスポンス良いよ。
pc11.2ch.net/test/read.cgi/mac/1224960170/

>>729
「やさしいC」は読んでないけど、入門書は
木下誠「たのしいCocoa」、アーロン・ヒレガス「MacOSX Cocoa プログラミング」

>>730
-(NSString *)stringByDeletingPathExtension

732 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 19:22:05 ]
>>731
ありがとうございます
「たのしいCocoa」にします

733 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 13:29:54 ]
「やさしいC」は言語の理解に重点を置いた本だから

荻原 剛志「詳解 Objective-C 2.0」
Stephen G. Kochan "Programming in Objective-C"

この2冊が該当する。Kochanの本を和訳して欲しいと思っている。

734 名前:730 mailto:sage [2008/12/30(火) 12:26:15 ]
>>731
サンクス


735 名前:デフォルトの名無しさん [2008/12/30(火) 12:30:53 ]
ObjectiveCってわざわざC言語の拡張にしたから構文がキッタナイキッタナイ
この言語の構文は学部生の卒論レベルだぞ
まったく整理されてない
企業でやるならもう少し良く考えて作ってほしい

736 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 12:37:51 ]
そんなに汚い汚い言うほど派手に拡張されてないし、
言語というよりは動的な環境を提供するライブラリ+呼び出し用マクロって感じだよ。
昔からあるじゃんESQL/Cとか。ああいう系統。

737 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 12:48:11 ]
ごめん、C++のほうがキッタナカかったわ
まぁ、C言語を拡張した言語ってのはろくなもんじゃないってことで

738 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 12:53:08 ]
Obj-C の方が汚いだろ・・・。

739 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 12:56:28 ]
Obj-C は拡張じゃなくてハイブリッドじゃないの?
まあ、僕も中括弧族の言語は好きくないけど
>>735 綺麗だと思う言語教えて

740 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 13:18:30 ]
735じゃないけど、綺麗だなって思うのはPythonくらい。
そもそもSmalltalkの構文が(思想は別にして)美しく感じられない。



741 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 13:27:41 ]
構文が美しいっていうのは、大抵その美しいと言われるところで好みが分かれがちだよね。

742 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 13:43:08 ]
まあ、世界の最高級の頭脳が集うアップルの上を行く 735 が
画期的な新言語を発表して、あっという間に世界中に広まるよ

743 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 13:44:58 ]
>>739
何が1番きれいかといえば scheme シンプルだしな。
2番目は haskell モナドで一貫性あるプログラミングができる。
3番目は smalltalk でもプログラミング環境や動作環境は最悪最低。遊び専用言語。

744 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 13:45:44 ]
>>742
別にそんな最高の頭脳が集まってるわけじゃないと思うぞw
俺だって一応オックスフォード出身だし。

745 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 14:24:14 ]
Obj-C はあのモサイところがいいんじゃないか。
美しさばかり追い求めていてはいかんよ。まだまだ若いな。

746 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 02:17:46 ]
>>742
残念ながら、言語が広まるかどうかはマーケティングに大きく依存するんだよ。

747 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 05:30:07 ]
アップルはマーケティングだけはうまいはずなのにw

単に中途半端だから普及しないんでしょ。
言語の洗練度ではJavaやらに劣り、速度ではC++に劣り、ここ数年のトレンドのWEB系ではPHPやperlに劣る。

748 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 06:02:26 ]
iPhoneは今はまだObjective-Cだけでしょ。

どうせ英語のリファレンスが読めなくて、使いたくても使えないからヒガンでるだけでしょ。


749 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 06:31:10 ]
>>748
日本語の解説もでてるっつーの。アップルのサイトとか見ろ。
つーか、そもそも他の言語は英語だけでも普及したけどな。

750 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 10:18:05 ]
Javaが洗練されているとかいってるやつは頭がおかしいだろ



751 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 10:36:58 ]
まさにマーケティングの効果w

752 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 11:33:32 ]
>>747
だったら何でハードもOSもシェアがあんなに少ないんだ?






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

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

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