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


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

Objective-C [ObjC part:8.1];



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

前スレ
Objective-C [ObjC part:8];
peace.2ch.net/test/read.cgi/tech/1356341803/

Objective-C [ObjC part:7];
toro.2ch.net/test/read.cgi/tech/1330330906/
Objective-C [ObjC part:6];
toro.2ch.net/test/read.cgi/tech/1313891268/
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

321 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 18:36:07.83 ID:crxuI7z8.net]
次は何になるの?

322 名前:デフォルトの名無しさん [2016/02/09(火) 11:44:34.00 ID:TANoAkWo.net]
Objective-CでiPhoneアプリ作っています初心者です。
質問させてください。

UIDatePickerのUIDatePickerModeCountDownTimerを
textField.inputView = datePicker;
という形でキーボードの代わりに出てくるように使っています。

このUIDatePickerModeCountDownTimerモードはバグが有るようで
ロールの初回選択時は反映されず2回めの選択から処理がなされるようです。

UIDatePickerのUIDatePickerModeCountDownTimerのバグ
ameblo.jp/h-jey/entry-11947729143.html

上記ページに対処が載っていたのですが知識も理解も足りないようでうまく行きません。
対処法を教えて頂けると助かります。

よろしくお願いします。

323 名前:デフォルトの名無しさん [2016/02/09(火) 16:10:24.61 ID:A9UbN6Hm.net]
ipv6対応しなきゃとエルカピたんにあげて今までのアプリそのまま動かしたんだけど全然エラーにならない
見たこともない
これって本当に対応必要なの?

324 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 14:43:45.61 ID:XMiUaI25.net]
allocって、クラスメソッドしか使えないんですか?

325 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 14:55:44.06 ID:UQTXGuAz.net]
というかallocはクラスメソッドだからね

326 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 15:09:56.97 ID:XMiUaI25.net]
インスタンスメソッドの場合、どうすればいい?

327 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 15:13:17.32 ID:UQTXGuAz.net]
すまんいってる意味がわからん

328 名前:デフォルトの名無しさん [2016/02/11(木) 15:22:48.86 ID:T48duRlP.net]
インスタンス作ってからさらにメモリ確保するのか……

329 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 15:25:22.21 ID:H0VUG8UT.net]
アロケイトをおまじないと思ってるんだろうな



330 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 21:26:16.88 ID:BYhgKPkM.net]
> allocって、クラスメソッドしか使えないんですか?
> インスタンスメソッドの場合、どうすればいい?

もしかしてallocという名前のインスタンスメソッドを定義したいのかな

331 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 22:58:08.81 ID:fwp65K1P.net]
id anotherInstance = [[[self class] alloc] init];

332 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 23:17:18.98 ID:UQTXGuAz.net]
>>325ってこと?
だとしてもallocがクラスメソッドであることに変わりはないけど
というかallocの役割的にクラスメソッド以外あり得ない

333 名前:デフォルトの名無しさん mailto:sage [2016/02/11(木) 23:21:52.27 ID:fwp65K1P.net]
自分をディープコピーして返すとかじゃね?
もっと状況を言わないと一瞬意味不明だよな。

334 名前:デフォルトの名無しさん mailto:sage [2016/02/12(金) 21:53:10.32 ID:e+FqND6X.net]
>>318,319
クラスとインスタンスは別のオブジェクトだぞ。
同じ場所に書くから初心者にはわかりづらいかもだが。
クラスとは、言ってみればヘッダさえimportすれば使えるグローバルなオブジェクトだ。
メッセージ式のレシーバにクラスを指定すれば、受信側のクラスメソッドのselfにはクラスオブジェクトのポインタが渡される。
レシーバをインスタンスにした場合

335 名前:は、受信側のインスタンスメソッドのselfはインスタンスのポインタだ。
これでわかっただろ?
[]
[ここ壊れてます]

336 名前:デフォルトの名無しさん mailto:sage [2016/02/12(金) 23:45:39.74 ID:1dW5OVx0.net]
1ミリも通じてないような気がする
正しいんだけど

337 名前:デフォルトの名無しさん mailto:sage [2016/02/12(金) 23:52:08.56 ID:4JY+EnsL.net]
Objective-Cではクラスは最初に実体があって
その実体自体に「よし、おまえのコピーを作れ」とメッセージを送ることで
インスタンスを作らせるからな。
雛形とかテンプレとかそういうのですらなくて
自分のインスタンス作る機能まで含めたファクトリクラスだし。

338 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 00:17:11.95 ID:rTriq7hd.net]
>>328
理解してるやつにはわかるが、わかってないやつには?って感じかと

339 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 00:28:32.71 ID:CI39+OQj.net]
でもなあ、ポインタを隠蔽しないで理解した方がいいと思うんだよな。
Cocoaがすでに隠蔽してないし。



340 名前:デフォルトの名無しさん [2016/02/13(土) 02:06:13.26 ID:kN1Baeh/.net]
いや、そこじゃなくてオブジェクト解ってない奴相手にレシーバとかメッセージ式とかのobjc用語使いまくってるところだろ

341 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 02:19:35.33 ID:CI39+OQj.net]
そこから解ってないのはObj-Cに限らず厳しいな。

342 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 09:31:39.36 ID:Fs+/DlzW.net]
メソッドくらいはわかるだろ?
これやれ!って、言ってるだけだし

343 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 10:22:37.16 ID:rTriq7hd.net]
Objective-CってCにちょっとオブジェクト指向追加しただけのシンプルな言語
難しくないだろ
メッセージっつっても一般的なオブジェクト指向言語のメソッド呼び出しと考えても
使用上は差し支えないし、メッセージ式の文法も最初は面食らうかもしれないが、
慣れれば、なんてこたぁない
最近Appleがゴリ押ししてる意識高めの言語よりよっぽど簡単

344 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 10:52:18.37 ID:CI39+OQj.net]
同意。「メッセージ送信」->「メソッド呼び出し」と言い換えても問題ない。

345 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 13:02:08.14 ID:SL3t4ard.net]
obj-cはネストしてメソッド呼び出す時の[A :[B:[C:[D pp]]]]みたいなのが
しんどいのがな。それ以外は好き。

elixirのバイプライン演算子をobj-cにつけてくんないかな。
返り値を右辺のメソッドの第一引数に渡す演算子なんだけど

[D pp] |> [C:] |> [B:] |> [A:]

みたいに書ける。

346 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 14:11:22.13 ID:uZC7UMRg.net]
メソッド呼び出しは、「おうクラスA、てめえBメソッドしろや」なんたけど、
メッセージ呼び出しは、「クラスA、こんにちは、Bをやってくれないかい?」なんだよね

丁寧だからネストするとちょっとうるさい見た目になるけど、
メソッドチェーンみたいな「Bした後、Cして、Dやれよ?ああん?」みたいな暴力さがない
途中でnilを返せばそれ以上詰めたりしないしね

347 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 14:50:30.00 ID:5qx3/3HE.net]
ClassとInstanceの関係ってC++やJava経験して来た人とかだとObjective-Cのオブジェクトは理解しくにそうだよな
Smalltalkやっとくと全然苦にならんのだけど。
Swiftでその辺隠蔽しても理解しやすいようにしたいのがAppleの意向なんだろうけど、MacとiOS開発ってSmalltalk慣れしたCプログラマ向けってのがおいらの所感

348 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 15:18:30.45 ID:rTriq7hd.net]
メッセージ式のネスト、最初は変態的だと思ったけど慣れたらどうってことなくなったな
Lispやってる人なんかは特にハードル低かったんじゃなかろうか

349 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 23:22:04.23 ID:0LHJAzgL.net]
ロボットがいて、受け付けるコマンドリストがあって
「おい、掃除しとけ」って命令すると"掃除"してくれる。
使えるロボできたら中の掃除内容変えたりして使い回す。

…Objective-Cのクラス周りのイメージってなんかそんな感じだなーと思ってるので
"プログラミング言語"実務側からの
「クラスとは構造体に関数がついたもの」「メソッド



350 名前:ニはつまり関数」
とか"自動車とはすなわち馬なし馬車である"ぐらい変な解説に見えて
ウボァーって変な声出そうになったりする。
[]
[ここ壊れてます]

351 名前:デフォルトの名無しさん [2016/02/13(土) 23:50:23.78 ID:YN1UCyzp.net]
>>341
前置記法じゃないから違和感ある

それはさておきJavaしか知らなくてクラス指向がオブジェクト指向の本流だと勘違いしてる人にはObjective-Cは変に見えるのかねえ

352 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 00:15:38.63 ID:PyhtsQ/D.net]
>>342
Objective-Cは、クラスを外から見たらそのロボットで、
クラス内部の実装は、その下の変な解説って感じ。
クラスの中には、インライン関数どころかインラインアセンブラまで使うクラスがあったりで、
@interfaceは整然としたロボットだけど、内部では囚われたカッパ達が・・・

いや、もちろんそんなハードな仕事するクラスばかりじゃないけどね。

353 名前:デフォルトの名無しさん [2016/02/14(日) 02:52:58.16 ID:SS1KUmSL.net]
最近obj-cがまた順位上げてるみたい
やっぱりobj-c3.0待ちだよな

354 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 08:11:15.49 ID:HUICKMOI.net]
>>345
当然でしょ
Swiftに移行する必要性がないから
Appleのゴリ押しだけが推進力だからな

355 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 16:21:32.42 ID:D0Yqf9Kh.net]
>順位
Swiftを試した人の中の一定数がObjCへ出戻って来た影響じゃないか

356 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 12:04:03.75 ID:o1yeVmO9.net]
老害だな
根絶やしにしろ

357 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 21:23:46.60 ID:D1MmfeIO.net]
Objective-C使い=老害という思い込み

358 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 04:14:06.30 ID:cX0cXTkh.net]
Objective-Cはなんつーか"ちょうどいい"ポジションにいるので
ここからユーザーに移行を促すのは大変だよなぁ…
ほぼApple専用でなかったら、これいまのJavaの位置だったろ?ってぐらい
わかりやすいC+オブジェクト指向っぷりだし。

359 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 07:44:17.75 ID:T8OiCwB/.net]
>>350
>ほぼApple専用でなかったら、これいまのJavaの位置だったろ?ってぐらい
>わかりやすいC+オブジェクト指向っぷりだし
わかりやすいよね



360 名前:デフォルトの名無しさん [2016/02/16(火) 08:11:08.67 ID:5UqE7wWz.net]
こんないい言語がApple専用なのは本当に惜しい

361 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 09:16:19.80 ID:2VnsGNUc.net]
専用では無いんじゃないの? 
ランタイムはオープンだよね。

362 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 09:31:07.69 ID:cb7bLrdU.net]
ランタイムはどうか知らんがコンパイラはGNUが昔作った気がする
WinはおろかLinuxですら使う人口が少なかっただけで

363 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 09:32:29.42 ID:AUXqcpoN.net]
CoreFoundationやNS系がApple専用だしなあ
AppleのソフトにはWindows用にもそういったdllが入ってたりするから移植されてるんだろうけど、SDKとしては公開されてないし
NSのつかない純Objective-Cなライブラリ体系もあるにはあるしオープンだけど、実用上は全く嬉しくないだろ

364 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 10:47:44.05 ID:L1d/icCk.net]
smalltalkがもうちょっと一般的だったらObjective-Cも入りやすかったかもね

365 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 17:16:47.78 ID:cb7bLrdU.net]
スクイークが変態環境じゃなかったら良かったな

366 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 18:20:06.54 ID:tCTD475N.net]
>>355
昔のGNUにはNSがなかったけど、後で付け足した

367 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 18:40:44.24 ID:PkVX6tWn.net]
swiftで実装したFoundation開発中だけどgithubにリポジトリ置いているってことは
次のFoundationは最初からクロスプラットフォームでオープンってことかね

368 名前:デフォルトの名無しさん [2016/02/16(火) 20:29:36.88 ID:uEcJx/Is.net]
>>359
NSData.swiftのコードなんか眺めてると、OSがLinuxの場合のimportの記述もあったりするんで
クロスプラットフォームのことも想定はしている感じだな。

369 名前:デフォルトの名無しさん [2016/02/17(水) 10:38:58.04 ID:NWAA8GlY.net]
iOS8切れないプロジェクトはobjCしかない。
そのうち3.0出るでしょ。



370 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 14:48:04.74 ID:4kmV8BWa.net]
>>361
iOS7も切れないのに8と9の機能使いたいとか言うともうソースコードが大変 orz

371 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 16:57:00.36 ID:243ZLeyW.net]
Foundationのみでどこまでの事が出来るだろう。通信系とデータベース系のフレームワークもマルチプラットフォームで用意してくれればありがたい。

372 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 22:23:22.16 ID:HWKatSeL.net]
明確な必要性がないのに言語を変えようとしたら、そりゃ歪みは生じるわな

373 名前:デフォルトの名無しさん [2016/02/18(木) 22:02:44.40 ID:ThW4WIO9.net]
メッセージ式好き
メッセージ式に返り値使うの嫌い
[[obj alloc] init]ですら嫌い

374 名前:デフォルトの名無しさん [2016/02/18(木) 22:19:30.54 ID:ncbtGfJT.net]
[obj new];

375 名前:デフォルトの名無しさん [2016/02/18(木) 22:46:51.93 ID:ThW4WIO9.net]
>>366
newは好き
ほんと好き

376 名前:デフォルトの名無しさん [2016/02/19(金) 00:56:12.38 ID:u0wtznhk.net]
Objective-Cで使える公開鍵暗号方式のライブラリないですか?
RSAが使えてBSDライセンスのものを教えてください。

377 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 11:41:19.39 ID:0R2jEsLy.net]
>>368
普通のCのライブラリでもいいじゃんよー

378 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 14:00:51.88 ID:hw/X0Y/j.net]
>>368
っ OpenSSL

最近は Nettle が熱い

379 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 14:41:54.17 ID:4FbEbwSw.net]
開発元はGNUか...寒いな > nettle
一昔前ならGNUなら信頼出来ると思ってたけど、最近のOSS財団はメンテが滞ること多数



380 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 17:32:58.13 ID:hw/X0Y/j.net]
最近っつっても20年くらい前からだろ

381 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 18:03:02.88 ID:v1bX/syV.net]
ここ5年(盛って10年)くらいじゃない?
金がないからメンテ出来ませんってOSSが増えたの
20年も遡ったら興味ある人がいなくてメンテ出来ませんって感じだった気がする

AppleがObj-CでSSL実装作らねーかな
openSSLはバグ指摘多くてイヤになったろ

382 名前:デフォルトの名無しさん [2016/02/19(金) 21:23:00.58 ID:dtTvn/Wc.net]
https://osdn.jp/magazine/14/04/23/150000

383 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 05:51:57.06 ID:KGb8ZGMM.net]
> RSAが使えてBSDライセンス
何に使うつもりなんだろう

384 名前:デフォルトの名無しさん [2016/02/23(火) 06:47:28.40 ID:Ic+Y0zem.net]
objective-c#まだかな・・

385 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:57:37.54 ID:EdYfjdOn.net]
いやC#はちょっと。。C++よりはマシかもしれんが

386 名前:デフォルトの名無しさん [2016/02/26(金) 09:04:15.07 ID:fCSgBQdM.net]
swiftからoptional型やmapを省いた
swift--
だろ

387 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 10:23:32.68 ID:AEppvgmX.net]
素直にObjective-C without Cの言葉通り、静的型付きSmalltalkが出てればな

388 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 10:46:13.53 ID:EcLgMPIl.net]
Smalltalk++
Smalltalk#

389 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 11:09:00.81 ID:B7GtwkvN.net]
Smalltalk.NET



390 名前:デフォルトの名無しさん [2016/02/27(土) 07:43:20.45 ID:zwwRZ2hM.net]
記述中のこの安心感はすごい。

391 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 11:46:19.31 ID:+6pgi266.net]
NSObject

Zukei

Sankaku

継承していった場合、Zukeiっていらないですよね?
Zukeiって何に使うの?

392 名前:デフォルトの名無しさん [2016/02/29(月) 11:58:49.67 ID:rONM9FLT.net]
>>383
そんなの設計者によるとしか。

393 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 21:32:03.37 ID:g6U0QDaU.net]
Shikakuを定義するときじゃ無いかな

394 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 22:33:15.39 ID:AGSlA4Px.net]
>>383
Zukeiで実装されてる機能もいらないまたは一から作るならいらないね

395 名前:デフォルトの名無しさん mailto:sage [2016/03/01(火) 10:05:50.59 ID:Y4Aw5jZp.net]
勇者と僧侶がいて、2人とも勇者だったら困るだろ?

396 名前:デフォルトの名無しさん mailto:sage [2016/03/01(火) 19:28:43.56 ID:oKiiXTzA.net]
NSColorが持ってるCGColorプロパティっていつのまにINNER_POINTERになったんだ。
これインナーポインターってことは、NSColorが自動的にリリースしてくれるってことでいいのかな。

397 名前:デフォルトの名無しさん mailto:sage [2016/03/02(水) 07:36:13.29 ID:vYYDvy9N.net]
>>379
それがSwiftだろw。Smalltalk/Xみたいに
Smalltalk部分とCの関係を逆転させればよかったのにな。

398 名前:デフォルトの名無しさん mailto:sage [2016/03/02(水) 11:33:42.75 ID:6RTODWst.net]
initWith と 変数宣言って何が違うの?

399 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 07:33:32.75 ID:v0X4WZo1.net]
変数宣言は単に箱用意するだけじゃないの



400 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 11:22:52.73 ID:sxVc5uct.net]
initWithは?

401 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 11:34:11.40 ID:LQKVhEqg.net]
インスタンスメソッドだ。

402 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 13:58:32.20 ID:jykHRqX5.net]
// Swift
let s = self.window!.rootViewController as! UISplitViewController
let n = s.viewControllers[s.viewControllers.count-1] as! UINavigationController
n.topViewController!.navigationItem.leftBarButtonItem = s.displayModeButtonItem()


// Objective-C
id s = self.window.rootViewController;
id n = [s viewControllers][[s viewControllers].count-1];
[n topViewController].navigationItem.leftBarButtonItem = s.displayModeButtonItem;

403 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 15:01:47.17 ID:LQKVhEqg.net]
s, nはid型だから、メソッド呼ぼうにもXcodeに注意されるぞ。

404 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 17:29:19.39 ID:NI2A9sOU.net]
>>390
C言語の文法レベルで変数を宣言してるか
フレームワークレベルでクラスに命令して作らせてるかじゃね?

銀行に借金頼みに行くのと
かーちゃんに「金貸して」では
前者が厳格で融通が利かないけど細かい問題が少ないのに対して
後者が融通が利いて楽だけど相互の了解で成り立ってる的な。

405 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 07:50:35.47 ID:A7nrOp7k.net]
>>394
そのObjective-Cの2行目のメッセージ式が連続してるのって
どういう意味?
そんな書き方許されるんだっけ
(メッセージ式のネストのこと言ってるんじゃないからね)

406 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 12:15:52.50 ID:ws81OHPW.net]
>>397
配列の添え字アクセス。
int index = [s viewControllers].count-1;
id n = [s viewControllers][index];

407 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 12:39:05.31 ID:JDwO95i7.net]
UISplitViewController *s = …
UINavigationController *n = …

こう宣言しないとだめだよ。

408 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 00:53:47.62 ID:Y+yze1Qk.net]
>>398
いやだとしてもおかしいでしょ
配列の添字をメッセージ式の戻り値にするならかならずブラケットが二重になるはず

409 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:23:19.93 ID:y3HtH6T+.net]
>>400
???



410 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:32:10.69 ID:Y+yze1Qk.net]
>>401
えっ?もしかして[s viewControllers]の戻り値が配列だとして、
[s viewControllers]を配列名として記述できるってこと?

411 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:34:19.82 ID:Y+yze1Qk.net]
だとすると、例えばC言語でも、
hoge()の戻り値が配列(ポインタ)だとして、
hoge()[index]とかやったら添え字アクセスできちゃうわけ?
今手元に環境がないから試せないんだけど

412 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:35:06.51 ID:Y+yze1Qk.net]
やるとしたら
(hoge())[index]
か?
できたとしてもこんな変態的な表現見たことない…

413 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:35:30.03 ID:5URH9rpB.net]
>>402
[s viewControllers] は NSArray*返すんだからあってるじゃん

414 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:36:18.69 ID:zjxr8oeE.net]
UISplitViewController *s = (UISplitViewController *)(self.window.rootViewController);
UINavigationController *n = (UINavigationController *)(s.viewControllers[s.viewControllers.count - 1]);
n.topViewController.navigationItem.leftBarButtonItem = s.displayModeButtonItem;

こうだな

415 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:38:21.94 ID:5URH9rpB.net]
NSArray* array=[s viewControllers];
って時に
array[index] は [array objectAtIndex:index]になるんよ
コンパイラの方で補間してくれてる。
同じように
NSDictionary* dic;にたいして
dic[@"key"] は [dic objectForKey:@"key"]って読み替えしてくれるよ

416 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:40:23.17 ID:zjxr8oeE.net]
UISplitViewController *s = (UISplitViewController *)([[self window] rootViewController]);
UINavigationController *n = (UINavigationController *)([[s viewControllers] objectAtIndex:[[s viewControllers] count] - 1]);
[[[n topViewController] navigationItem] setLeftBarButtonItem:[s displayModeButtonItem]];

古い書き方したらこうか

417 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:41:05.38 ID:Y+yze1Qk.net]
>>407
うん、そこまではわかる
メッセージ式の引数をダイレクトに配列変数名として[]による要素アクセス
しちゃうなんていうアクロバティックな表現見たことなくてさ

418 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:43:00.37 ID:Y+yze1Qk.net]
まあ、わかるとは言ったけど、>>407も驚きだわ
今のコンパイラはそのレベルまで補完してくれるんだね…
バグの原因になりそうだけど

419 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:46:11.56 ID:zjxr8oeE.net]
ていうかこのサンプルコード?
self.windowってことは、UIViewのサブクラスの中から
UINavigationControllerのleftBarButtonItem変更してるんか
かなり糞コードな気が



420 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:50:46.16 ID:Y+yze1Qk.net]
>>394
つーか、メッセージ式の戻り値でダイレクトに後置[]で要素アクセスしちゃうのもアレだけど、
Objective-Cにおいてオブジェクトのメンバーをドットで直接参照するなんてのも
書き方としてあり得るの?

421 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 01:52:24.95 ID:Y+yze1Qk.net]
しかも、仮に強いて直接参照するとしても演算子は->じゃない?
謎が多すぎる






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

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

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