トップページ⇒tech
993コメント279KB

Objective-C [ObjC part:5];

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/07/22(木) 01:38:19
Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
 (Wikipedia:http://ja.wikipedia.org/wiki/Objective-C より)

Objective-C [ObjC part:4];
http://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
0153デフォルトの名無しさん2010/10/18(月) 22:03:29
setSize:(CGSize)sizeとかにしろや潔癖症。
0154デフォルトの名無しさん2010/10/18(月) 23:12:14
>>152
いや、話の流れ的に、>>140のサイトに出てきた例を引き合いに出してるだけ。
0155デフォルトの名無しさん2010/10/24(日) 20:42:22
delegateが絡むと参照カウンタの動きが見えづらくなるのがホントに嫌になる
0156デフォルトの名無しさん2010/10/24(日) 21:01:06
えっ
0157デフォルトの名無しさん2010/10/28(木) 21:33:20
デバッグコンソールにすら何も出力せずに黙って落ちるのってどうにかならないの?
0158デフォルトの名無しさん2010/10/28(木) 21:41:31
所詮中身はCなんだからそんなもんだ
0159デフォルトの名無しさん2010/10/29(金) 18:56:53
>>157
そのパターンは大抵、スタックぶち壊して、リターンするときあり得ない所へすっ飛んでるだけ。
0160デフォルトの名無しさん2010/10/29(金) 21:26:47
>>157
出力するようにプロジェクトの設定変えろよ。
0161デフォルトの名無しさん2010/10/29(金) 22:02:40
>>160
え!そんな設定があるんですか?!
0162デフォルトの名無しさん2010/10/29(金) 22:55:19
環境変数で
NSZombieEnabled=YES
NSDebugEnabled=YES
NSDeallocateZombies=YES
NSHangOnUncaughtException=YES
NSAutoreleaseFreedObjectCheckEnabled=YES
とかを追加すると、コンソールに出てくる内容が変わる。
あとはビルドの設定でDebugモードにしたりとか。
0163デフォルトの名無しさん2010/10/30(土) 10:22:28
デフォでは、ビルド設定Debugモードじゃないの?
01641032010/11/07(日) 20:32:28
releaseメッセージの送り先のインスタンスのdeallocメソッドの中で、外部オブジェクトへの参照変数をnilにしてなかったのが落ちる原因でした。
こんなもん気づくかw
0165デフォルトの名無しさん2010/11/07(日) 21:15:31
それが原因じゃない方に10^10ジンバブエドル賭ける
0166デフォルトの名無しさん2010/11/09(火) 12:39:29
>>165

やけに安いなぁw
0167デフォルトの名無しさん2010/11/10(水) 17:12:53
NSMutableArrayって永続化できる?
NSArrayにへんかんしなきゃ駄目?
0168デフォルトの名無しさん2010/11/10(水) 17:35:08
>>167
中身が全部永続化できるなら出来るよ
でも、NSArrayで返って来るからmutableCopyしなきゃダメだったと思う
0169デフォルトの名無しさん2010/11/10(水) 18:51:31
>>168
おおお、返りのことまでエスパー回答ありが�d!!!!
0170デフォルトの名無しさん2010/11/15(月) 21:44:28
NSEvent が引数の関数を書いたのですが、これはイベントが起きると自動で呼ばれるのでしょうか?
それともaddEventListenerみたいなことをしないといけないのでしょうか?
0171デフォルトの名無しさん2010/11/15(月) 22:05:20
まず関数とメソッドの違い、レスポンダチェーン、NSResponder について学んで下さい。
0172デフォルトの名無しさん2010/11/16(火) 07:05:34
>>171
ありがとうございます。おかげでイベントの取得に成功しました。
一つ質問があるのですが、
ウィンドウにフォーカスがない状態でマウスのイベントを取得することはできますか?
0173デフォルトの名無しさん2010/11/17(水) 11:16:38
#CのConsole.Clear();みたいなコンソールクリアするメソッドある?
標準出力をAIRに渡してるんだが、出力するたびにログが蓄積されて困ってる(´・ω・`)
01741732010/11/17(水) 12:47:00
自己解決。
printf("Hello World\n");の後にfflush(stdout);しないとバッファに溜まっちゃうんだな・・・。
コンソールクリアする必要はなくなったが、
system("clear");はデバッガコンソールでTERM environment variable not set.とエラーでるが、
ターミナルでは実行出来る感じ。
0175デフォルトの名無しさん2010/11/17(水) 23:09:24
>>172
試してないけど [NSApp currentEvent] はどうか。
0176デフォルトの名無しさん2010/11/24(水) 21:33:33
Windowsで使えるIDE(コード補完があれば十分)って何かない?
※できればCocoaのライブラリも補完できれば理想。
0177デフォルトの名無しさん2010/11/25(木) 15:32:45
ソニー、次世代デバイスの開発環境にAppleのiOSと同じObjective-C採用
ttp://365yen.jp/news/2010/11/36170/

だってお^^;
0178デフォルトの名無しさん2010/11/25(木) 16:50:45
動的結合不可なカスタムObjective-Cとか持ってきそうだなw
0179デフォルトの名無しさん2010/11/25(木) 17:50:56
最近のソニーって後追いばっかりな印象があるな
ObjCを選んだのは…話題性狙いか?
0180デフォルトの名無しさん2010/11/25(木) 17:52:02
卑屈になるなよw
objcの良さが一般にも浸透してきたんだろ。
0181デフォルトの名無しさん2010/11/25(木) 17:53:08
>>178
UIKitとかあるんかねぇ?
0182デフォルトの名無しさん2010/11/25(木) 19:17:04
sonyKit
0183デフォルトの名無しさん2010/11/25(木) 19:42:49
APIが3年で破綻するのかw
0184デフォルトの名無しさん2010/11/26(金) 18:40:35
SONY版Objective-Cでは、ObjectがSonyTimerを継承します。
0185デフォルトの名無しさん2010/11/26(金) 21:42:01
初心者におすすめのObjective-Cの解説本ある?
できればcocoaについても解説がのってるととても嬉しい
0186デフォルトの名無しさん2010/11/26(金) 23:03:05
>>185
>初心者におすすめのObjective-Cの解説本

このスレの3あたり嫁
0187デフォルトの名無しさん2010/11/26(金) 23:03:34
ほんとにObjective-Cの言語だけの解説なら10ページくらいで終わっちゃいそう
ランタイムAPIまで含めても30ページもありゃ終わるんじゃないか
0188デフォルトの名無しさん2010/11/27(土) 05:49:23
>>187
是非書いてみて晒してくれ
0189デフォルトの名無しさん2010/11/27(土) 09:06:04
C/C++の基本的な知識についての説明は他本に譲りますとか
0190デフォルトの名無しさん2010/11/27(土) 14:32:42
C分かるならマイコミとかの記事で十分習得できるけどな。
0191デフォルトの名無しさん2010/11/27(土) 15:43:13
>>187
このスレ残り800近くあるからぜひここで晒してみてくれ
0192デフォルトの名無しさん2010/11/27(土) 17:30:40
ここに貼るのはやめれ
2ch に著作権譲るのはバカバカしい
どっかのロダに貼ってリンクすべし
0193デフォルトの名無しさん2010/11/27(土) 17:44:15
>>181
AppKitはあるね。と、いうかOpenStepにSnapのExtensionを追加した形
既にドキュメントもSDKも(最新は1.2)一応配布されてる。
0194デフォルトの名無しさん2010/11/29(月) 21:26:30
>>187
Apple提供のpdf
Objective-C 2.0 プログラミング言語
が最低限だろうな。
0195デフォルトの名無しさん2010/11/29(月) 21:30:48
Objective-C、Cocoa、Xcode、foundationフレームワーク、これらの用語の関係を教えてください。
初級者本ですら色んな用語が次から次に出てきて理解できません。

XcodeはMacでiPhone開発する時に使う、ツール群のことを指していると考えていいのかな?
しかしそうするとCocoaって何なんですかね。。Cocoa環境とか言われてますが。
そのCocoaとやらの中にFoundationというのがあるらしいのですが、ここら辺までくるともう何がなにやら。
0196デフォルトの名無しさん2010/11/29(月) 21:53:20
>>195
まずは、初心者本を読んで、用語を理解してください
0197デフォルトの名無しさん2010/11/29(月) 23:05:51
>>195
別に覚えなくて良いよ
0198デフォルトの名無しさん2010/11/30(火) 01:00:34
>>195
ま〜ぱのコトテンでも読んでな!
0199デフォルトの名無しさん2010/12/02(木) 01:07:22
>>194
それどこ情報〜?どこ情報よ〜?
0200デフォルトの名無しさん2010/12/02(木) 02:42:30
>>199
ttp://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/
0201デフォルトの名無しさん2010/12/02(木) 04:41:14
>>199
こっちの方が新しい
ttp://developer.apple.com/jp/devcenter/ios/library/documentation/ObjC.pdf
0202デフォルトの名無しさん2010/12/02(木) 16:26:52
アプリ起動時にスクリーンセーバーを無効にして、
終了時に戻すことやりたいんだけど、
どうすればいい?
0203デフォルトの名無しさん2010/12/02(木) 19:16:00
ggrks

http://hintsforums.macworld.com/archive/index.php/t-61525.html
0204デフォルトの名無しさん2010/12/02(木) 22:12:30
で、187は>>201をどう10ページにまとめあげるか楽しみに待っているんだが。
0205デフォルトの名無しさん2010/12/02(木) 23:41:16
4x4のサムネール表示なら収まる
とネタを潰しておこうw
0206デフォルトの名無しさん2010/12/03(金) 00:00:19
NSDataのなかの特定の範囲のバイト列を取り出して、32ビットのint型に
変換したいのですが、どのような方法がありますでしょうか?

subdataWithRange:NSMakeRange(3,4) のようにしてバイト列を取り出して

int32_t datasize;
[data getBytes:&datasize];

こすうれば一応できるのですが、JavaにあるByteBufferのgetIntのような感じで
取得したいと思っています。 そういう方法ってありますか?
02071872010/12/03(金) 00:21:26
冗談半分のレスにそんな期待されてもなあ
そもそも書くなんて言ってないし

10pは大げさすぎたけどどっちにしても言語の解説だけなら
薄っぺらい本にしかならないしCocoaの解説も含んでないと
成り立たんでしょーっていう >>185 への回りくどいツッコミ
だったんだが誰も気づいていくれなかった
長文スマソ
0208デフォルトの名無しさん2010/12/03(金) 00:26:17
俺は気付いてたよ
0209デフォルトの名無しさん2010/12/03(金) 00:38:14
ヲレもヲレも
0210デフォルトの名無しさん2010/12/03(金) 01:03:26
>> 206
Java全く知らないんだけどgetBytesを見つけといてgetBytes:range: を使わな
いのはなにか画期的な良さがそのgetIntにはあるの?
int32_t intData;
[data getBytes:&intData NSMakeRange(offset, sizeof(int32_t))];
戻り値が直接返ってくるような関数がご希望ならカテゴリでNSDataに追加すれ
ばいいだけだと思うのですが、この手のデータの扱いだとエンディアンが必ず
問題になるのでこのまま表に見えるようにして使うほうが無難そうだし。
0211デフォルトの名無しさん2010/12/03(金) 01:15:43
>> 206
int32_t intData = *((int32_t *)([data bytes] + offset));
Objective-Cっぽくないな。
0212デフォルトの名無しさん2010/12/03(金) 05:51:01
なんでいちいちNSData新規に作る必要があるの?

>>211 に一票追加。
0213デフォルトの名無しさん2010/12/03(金) 11:31:04
>>211
OOPっぽくはないが、Objective-Cっぼい気はする
0214デフォルトの名無しさん2010/12/04(土) 01:55:44
完全未経験からITスクールに1ヶ月半ほど通ってiPhone開発の会社に入社しました。
ITスクールではHTMLとJavaScriptとPHPを勉強しました。
研修も無しに来週から1人で出向することになりました。
土日でObjective-CとiPhone SDKとやらを勉強しておけ、ということらしいです。
出向先は社員数人のベンチャーで全員デザイナーということなので
開発者は自分1人です。
どう考えても詰んでるんですが、この業界はこういうのが普通なのでしょうか。。
2日で出来る限り覚えるとしたらどの本で勉強すればいいでしょうか?
0215デフォルトの名無しさん2010/12/04(土) 02:04:41
>>214
金をケチってObjective-C未経験者を雇うとか、底辺デザ事務所らしい発想だな。
一般的なIT業界はさておき、iPhone界隈では普通ではない。

とりあえず、アップルの日本語に翻訳されたドキュメントを読め。
言語仕様、チュートリアル、UIのガイドライン、MVC、KVCあたりのことは必読。
C言語すら知らなかったら2日じゃムリ。

デザイナー相手ってことなら、Interface Builderの使い方だけ覚えて、
見た目でごまかして、時間稼ぎをしつつ勉強するのがいいと思う。
0216デフォルトの名無しさん2010/12/04(土) 02:08:31
どう考えたって真っ当な会社じゃない。
が、今時未経験者を取るような会社はそんなレベルが多いんだろうね…

とりあえず日本語参考資料。
http://developer.apple.com/jp/devcenter/ios/library/japanese.html

出向先が全員デザイナーって…iOSのデベロッパ契約も結んでないに300ペリカ
0217デフォルトの名無しさん2010/12/04(土) 02:13:55
うわ、すげぃ
手持ちの技能から考えるなら
Obj-CじゃないけどDashcodeいじって
なんかアピール出来るもの作って生き残りをはかるとか
02182142010/12/04(土) 02:47:04
皆様ありがとうございます。
やはり普通ではないのですね。
C言語も分からないので、一からObjective-Cを勉強ってのは難しそうですね…。
とりあえずアップルの日本語資料を読むことにします。
macを支給してもらえたのが唯一の救いなのかな。土日は寝ずに勉強して誤魔化せる程度にはしておこう。
0219デフォルトの名無しさん2010/12/04(土) 09:23:17
すみません、質問です。
プロパティの宣言で、retainとreadonlyを一緒に宣言するのって
どういう意味があるんでしょうか?
CoreDataのさンプルでこんな宣言がされています。

@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;

retainって、値をセットするときの指定だと思っていたんですが..
0220デフォルトの名無しさん2010/12/04(土) 09:30:03
- (id)retain;
ってご存じ?
0221デフォルトの名無しさん2010/12/04(土) 09:31:32
いや、..存じません。
0222デフォルトの名無しさん2010/12/04(土) 09:49:23
自己解決しました。
0223デフォルトの名無しさん2010/12/04(土) 18:57:08
>>219
すいません。219と違う人だけど、わからないので
説明お願いします。実質retainは機能しないと思うのですが。
0224デフォルトの名無しさん2010/12/04(土) 19:19:41
Google in English で、「retain readonly」でググるとでてくるよ。
0225デフォルトの名無しさん2010/12/04(土) 19:59:18
public では readonly でも、private では readwrite で利用するから?
0226デフォルトの名無しさん2010/12/04(土) 20:42:02
>>224
ttp://stackoverflow.com/questions/1933489/objective-c-2-0-properties-why-both-retain-and-readonly

出て来たわw
見方が分からんが、#10ってやつだと実装はreadwriteになってる。
readonlyは、いつもgetterを書いてたからこういった形式は
初めて見たわ。
0227デフォルトの名無しさん2010/12/04(土) 20:52:28
クラスエクステンションとかで拡張するときのために、
あらかじめ、指定しておくみたいな
0228デフォルトの名無しさん2010/12/05(日) 01:06:35
>>225-226
外に向けてreadonlyにするときは実装側でプロパティが使えなくて
いつも面倒だなあと思ってた。でもこういう方法があったんだね。
これならほぼ全てにプロパティ使えてコードが綺麗になるわ。
とてもためになったよ、ありがとう。
0229デフォルトの名無しさん2010/12/05(日) 21:51:17
うーむ…なんというか、なんか二度手間に見えてしまうなぁ…
個人的には synthesize を無理矢理使っているような感じを受けてしまう。
0230デフォルトの名無しさん2010/12/05(日) 22:12:14
煽りでも何でもないんだけど
Objective-Cが一般的に普及することはあり得ないのかな?
この先もマック開発とかiPhone開発とか限定でしょうか?
0231デフォルトの名無しさん2010/12/05(日) 22:45:29
まず「一般的に普及」を定義してくれ。
0232デフォルトの名無しさん2010/12/05(日) 22:51:16
>>230
ソニーが採用したって噂を聞いたけど、まあ、一般的に普及することは無いだろう。
0233デフォルトの名無しさん2010/12/05(日) 23:25:02
充分普及してると思うが
0234デフォルトの名無しさん2010/12/05(日) 23:35:16
ええそうですね、十分普及してますね。
でも、一般的に普及することは無いでしょうね。
0235デフォルトの名無しさん2010/12/05(日) 23:57:51
つーか普及すればAppleにとっても嬉しいはずなのに、どうしてこんなに閉鎖的なんだろうな。
iPhone SDKだって他のOSにも開放してれば今頃iPhoneはモバイル界のWindowsになっていたはずなんだ。
0236デフォルトの名無しさん2010/12/06(月) 00:12:44
Mac の一台も買えないような開発者に何が出来ると
0237デフォルトの名無しさん2010/12/06(月) 00:39:20
>iPhone SDKだって他のOSにも開放してれば

そんなこと出来る会社ならintelMacがもっと伸びて世界中のPCはMacになってるはず
0238デフォルトの名無しさん2010/12/06(月) 01:23:14
ハードとソフトを自分たちで設計し作っているから、
個々の性能を引き出し、微妙な調整を施し、デザイン
を洗練し、独特のブランドを確立できているんだろが。
0239デフォルトの名無しさん2010/12/06(月) 01:30:18
Macは壊れやすい印象しかないな
0240デフォルトの名無しさん2010/12/06(月) 01:35:32
Macの起動速度は、少なく見積もっても、Windowsの1/2以下。
Windows使いは人生のうち100時間ぐらいをその起動待ちで
ぼーっと費やしている。とってもかわいそう。
0241デフォルトの名無しさん2010/12/06(月) 01:43:18
Macはハッカー御用達ツール。
Googleを初め、世のハッカー企業社員のプレゼンは
その幹部を含め、ほとんどがMacを使っている。
独自の文化と真のUnixと、プロプライエタリの堅牢性と、
オープンソースの柔軟性を絶妙のバランスで見事に融合
させた結晶。それがMac。
Macを知らない人は、人生の1/10くらい損している。
ましてやプログラマを名乗ってはいけない。土方を名乗る
のはまぁ許す。
0242デフォルトの名無しさん2010/12/06(月) 01:53:24
いやいや、Googleは業務用にはUbuntu使ってる社員が多いし、プレゼンはたいてい
WindowsでPowePointだよ。

プロプライエタリの堅牢性なんて言えば聞こえはいいが、実際はオープンソースへのただ乗り。
Darwinの公開だっていやいやだし、WebKitはKHTMLからのフォークだから仕方なく。
Objective-Cコンパイラに至っては、FSFからGPL違反の指摘を受けて、やっと公開したよね。
(まあ当時は、AppleではなくNeXTだったが)

まあ、おれも漢字Talk7の頃からMac使っててNeXTCUBEも持ってたので、好きこのんで
使ってはいるが、企業としては一貫して嫌いだ。
0243デフォルトの名無しさん2010/12/06(月) 01:59:46
昔は囲い込みの方針を曲げずにズルズルと失敗し続けてた印象だけど
最近はiPhoneアプリをXcode+ObjCだけに一度限定して
その後すぐに緩和するとか割と狡猾だよねー
0244デフォルトの名無しさん2010/12/06(月) 02:00:57
>>235
わかんないよ
Windows用Xcodeも準備中かもしれないよ?

まあ手を広げすぎても自分たちの実現したいユーザエクスペリエンスが維持できるかと自問して
出来そうにないからやらないだけなんだろう。まずMSが信用ならんし・・・
0245デフォルトの名無しさん2010/12/06(月) 02:01:15
え?
0246デフォルトの名無しさん2010/12/06(月) 02:05:12
>>242
PowePointは糞。つか名前も聞いたことない。
Keynoteは神。
0247デフォルトの名無しさん2010/12/06(月) 02:10:05
>>242
お前が嫌ってるのはAppleじゃなくてCanonの間違いじゃないのか?
0248デフォルトの名無しさん2010/12/06(月) 02:10:39
>>244
Windows用Xcode?
なぜわざわざ?
なぜわざわざ開発環境を悪化させる必要があるの?
なぜわざわざ情弱大衆に媚びるの?
なぜわざわざ使えないのが分かりきってる土方に提供するの?
イラネwww
0249デフォルトの名無しさん2010/12/06(月) 02:17:06
コマンドがBSDとGNU系で混ざってたりシステムコールが特異なところがあるし
MacPortsがあるから助かっているものの、
インタネット系開発はLinux系のがなにかと楽かなー。
0250デフォルトの名無しさん2010/12/06(月) 02:54:51
一般的にというのはC++くらいあちこちで使われるという意味です
0251デフォルトの名無しさん2010/12/06(月) 03:15:48
きめぇ…これがマカーというやつなのか
0252デフォルトの名無しさん2010/12/06(月) 08:00:36
>>230
ありえねーよ馬鹿。
■ このスレッドは過去ログ倉庫に格納されています