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] しかも、仮に強いて直接参照するとしても演算子は->じゃない? 謎が多すぎる