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
552 名前:デフォルトの名無しさん mailto:sage [2016/10/17(月) 11:37:03.04 ID:4hpKEwJL.net] ccそのものは昔からあるCのコンパイラでしょ、今はgccにリンクしてることが多いが
553 名前:デフォルトの名無しさん [2016/10/17(月) 11:59:05.64 ID:v6qceZ1M.net] 俺的メモ gccとcc(clang)との違い。 ccはコマンドalias。 gccはclangのwrapperコマンド(俺の推測) gcc -v, cc ―versionは、どちらもApple LLVMだと答えてくれる。 cc -framework Foundation hello.m gcc -framework Foundation hello.m と打ってコンパイルして得られるバイナリは同サイズだ。 ll a.out* -rwxr-xr-x 1 ad staff 8.3K 10 17 11:54 a.out -rwxr-xr-x 1 ad staff 8.3K 10 17 11:53 a.out-cc
554 名前:デフォルトの名無しさん [2016/10/17(月) 13:01:16.77 ID:v6qceZ1M.net] ちなみに libobjc.A.dylib libSystem.B.dylib の中にいったいどんなCの関数が入っているのか?classdumpってフリーのコマンドラインツールで調べる事ができるはず。俺、やった事無いけど。
555 名前:デフォルトの名無しさん [2016/10/17(月) 13:15:29.63 ID:v6qceZ1M.net] せっかくだから、 class-dump /usr/lib/libobjc.A.dylib やってみた。 @protocol NSObject @property(readonly, copy) NSString *description; @property(readonly) Class superclass; @property(readonly) unsigned long long hash; - (struct _NSZone *)zone; - (unsigned long long)retainCount; 以下略 Cの関数は入ってなくて、Obj-Cのクラスとか、構造体とかが、入っていた。
556 名前:デフォルトの名無しさん [2016/10/17(月) 13:24:24.90 ID:v6qceZ1M.net] ついでに、 nm -o /usr/lib/libSystem.B.dylib | less こいつの最初の数行は、 /usr/lib/libSystem.B.dylib: 0000000000001abb T R8289209$_pthread_attr_destroy /usr/lib/libSystem.B.dylib: 0000000000001ac0 T R8289209$_pthread_attr_init /usr/lib/libSystem.B.dylib: 0000000000001ac5 T R8289209$_pthread_attr_setdetachstate /usr/lib/libSystem.B.dylib: 0000000000001aca T R8289209$_pthread_create 以下略
557 名前:デフォルトの名無しさん mailto:sage [2016/10/17(月) 13:32:18.66 ID:yAttM8H1.net] >>538 それはたまたまOSX上のObjective-Cでそうなってるだけ 大抵の言語では「言語」ランタイムはスタティックリンクされるし Objective-Cでもlibobjc.aがある環境ならスタティックリンクできる /usr/lib/の下に.oがいくつかあるけど、こいつらも「C言語の」ランタイムでmain関数よりも前の処理になってて 大抵の実行ファイルにはどれかが暗黙にスタティックリンクされてる
558 名前:デフォルトの名無しさん mailto:sage [2016/10/17(月) 13:39:16.83 ID:yAttM8H1.net] あとlibSystem.B.dylibはシステムコールラッパーとC言語の標準ライブラリの一部(libcと分割)なんで ランタイム(実行時)ライブラリであることには間違いはないけど C言語の
559 名前:宴塔^イムというと、普通はスタートアップ(*.o)やlibgccの方を指すと思う [] [ここ壊れてます]
560 名前:デフォルトの名無しさん [2016/10/17(月) 14:05:08.33 ID:v6qceZ1M.net] >>549 nm libSystem.B.dylibの結果はほとんど’U’タイプのSymbolでした。 man nmによると Symbol type ‘U’ = undefinedで、実装は別ファイル、参照だけ!、って事らしいので、 実装はたとえば、libcにあるんだと思います。 nm -o libSystem.B.dylib | grep -v ‘U’すると、出力は極わずかでした。
561 名前:デフォルトの名無しさん [2016/10/20(木) 17:05:03.85 ID:8PkcGQMJ.net] MRC時代のOSXプログラミングの書籍ってなにがありますか?(何を買えばいいですか?) 今はAppleのオンラインドキュメントなどはほとんどARC前提で記述されてるので ネット探してもなかなか見つけられません
562 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 17:35:44.02 ID:v715sDMz.net] 古い版の萩原本でもよみゃいいだろ。
563 名前:デフォルトの名無しさん [2016/10/20(木) 19:00:37.37 ID:8PkcGQMJ.net] >>552 https://www.amazon.co.jp/Objective‐C―MacOS-Xプログラミング入門-荻原-剛志/dp/4877780688/ref=sr_1_6?s=books&ie=UTF8&qid=1476957557&sr=1-6 これとかか?
564 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 20:24:30.68 ID:ifLlZ1yA.net] 上手に貼れ https://www.amazon.co.jp/dp/4877780688/
565 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 13:48:49.63 ID:aBo6S+EN.net] @interface @implementation これに変数2回宣言するだろ? 違いってなんですか?
566 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 14:18:03.51 ID:OZkbpJ7G.net] >>555 必要なスコープに1回宣言すればいい。 というか、外部に変数を公開する事は、特殊な事情以外ありえないから、 ヘッダにはアクセサ即ちプロパティを書けばいい。 つまりインスタンス変数なら@implementation{ } のブロックで宣言すればいいよ。 継承した子クラスからその変数へは、親クラスのアクセサ経由でアクセスするのが普通。 こうすると、ヘッダには外部に公開する情報しか現れない。 どうしても子クラスから親クラスの変数に直接触りたい場合は、 親クラスの@interface{ }ブロックで宣言する。 その場合はデフォルトでアクセス制限が@protectedになる。
567 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 14:31:48.57 ID:OZkbpJ7G.net] >>555 補足 その変数を外部に公開しないのなら、ヘッダでプロパティにしなくてもいいよ。 プロパティは.mにも書けるし。
568 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 12:45:51.00 ID:0S40a4Cy.net] インスタンスメソッドの実行に関して教えてください。 // message sending [obj say: @
569 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:13:08.74 ID:Psw7U5GH.net] 事切れたか
570 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:29:09.43 ID:5aO/SijD.net] ダブルクオートとかで切れるのよく見かけるけど、@ でも切れるんかな
571 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:29:10.81 ID:0S40a4Cy.net] ソースコードが勝手に切られちゃう(サニタイズ関係?)みたいなので画像で失礼します。 インスタンスメソッドの実行に関して教えてください。 message sending / function pointer どちらの方法でもちゃんと動くのは確認できましたが、 なぜ後者はSELパラメータが必須(この場合selector) な仕様になっているんでしょう? 冗長に見えますが何か意味があるんでしょうか。 sss
572 名前:p://o.8ch.net/j7xx.png [] [ここ壊れてます]
573 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:30:21.21 ID:5aO/SijD.net] @ の次は当然 " がくるだろうけど、今まで1個目の"が表示されて切れるんだよなあ
574 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:33:39.43 ID:0S40a4Cy.net] > SELパラメータが必須 instanceMethodForSelector: の時点で伝えてあるのに、なぜ実行時にも必要になるのかという事です。
575 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:40:44.67 ID:+o4tuiiL.net] >>563 1.instanceMethodForSelectorでメソッドの実体である関数のポインタを取得(IMP func) 2.funcをキャストして呼び出し 2のときに、メソッドの暗黙の第1,第2引数である id obj, SEL selectorを渡してます。
576 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:54:11.06 ID:0S40a4Cy.net] ありがとうございます。それでは改めて聞き直します。 メソッドの暗黙の第2引数が SEL である、そもそもの設計の意図はなんなんでしょう。 内部で振り分ければいいので複数のメソッドに対して一つの関数(ポインタ)が共通で対応可能とか? それが実際にできたとして何かメリットがあるんでしょうか。
577 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:00:22.50 ID:f6OBJy8Y.net] セレクタを見て他のメソッドにデリゲートするとか。
578 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:05:35.87 ID:+o4tuiiL.net] ランタイムは、渡されたセレクタをメソッドリストから検索して、有れば実行、無ければエラー。 ってことかな。
579 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:28:15.44 ID:+o4tuiiL.net] IMP使った場合はランタイムは経由しないでダイレクトに関数コールするけど、 通常は動的にメソッド呼び出しをするのでそういう仕様になってる。 のではないだろうか。
580 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 18:17:20.63 ID:ZyPoEOxl.net] サブクラスでのオーバーライドをサポートするために だと思うよ。
581 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 21:32:33.37 ID:XVALpd1q.net] Smalltalkで、実行中メソッドのコンテキスト内からそのセレクタを得ることができる機構を Objective-Cでも_cmdパラメーターを介して模したかったからなのでは? Object subclass: Foo [ bar [ thisContext method selector displayNl ] ] Foo new bar "=> #bar "
582 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 23:13:49.69 ID:+o4tuiiL.net] だいたいその辺の、実行時解決を実現したかったという理由だと思うけど、 ランタイムがメソッド呼び出しするときの動作は 1.レシーバがnilかどうか 2.レシーバのメソッドリストに該当メソッドがあるか 3.なければスーパークラスにあるか 4.なければthrow exception だよね。 だからメソッド呼ぶときはランタイムにレシーバとselectorを渡して調べてもらう必要が有るんですよ。
583 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 23:51:59.51 ID:8N+auLd3.net] レシーバはselfとして使うから必要なのはわかるんだけど、セレクタはいつ必要になるの? ランタイムに調べてもらうのは関数(メソッド実体)コールの前だろうから、コール時にはすでに不要な情報だよね
584 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 00:08:47.34 ID:QxITf25H.net] >>572 セレクタはメソッド呼び出しで必要>>571 IMPで関数呼び出しの場合はランタイムを経由しないので不要 しかしどちらもシグネチャは共通なので(id, SEL, …)ということ
585 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 02:19:58.76 ID:QxITf25H.net] >>572 ちなみにこれでも動作する。id,SELは渡してない。 void(*f)(void) = [ViewController instanceMethodForSelector:@selector(hoge)]; f(); - (void)hoge { NSLog(@"%@", NSStringFromSelector(_cmd)); } SELを渡してないので null と出力される idも渡してないので、hoge内でselfにアクセスすると落ちる。
586 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 08:55:20.76 ID:1f4/DDXi.net] なるほどこれはわかりやすい
587 名前:デフォルトの名無しさん [2016/11/18(金) 09:33:05.33 ID:sBZu/NEl.net] BathyScapheっていう2ch Viewer使ってます。 >>561 みたいな画像をuploadするにはどうすればいいっすか? 2chのサイトではdrawツールがブラウザ
588 名前:内にあって、それで落書きはできるみたいですが、pngとかgif画像をuploadしたいのです。 [] [ここ壊れてます]
589 名前:デフォルトの名無しさん mailto:559 [2016/11/18(金) 11:55:15.19 ID:U2qFJJrM.net] >>576 素の落書きツールは かなり使い勝手が悪いので 自作の Geasemonkeyスクリプト(for Firefox)使ってます。 sssp://o.8ch.net/j8zx.png
590 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 11:57:16.56 ID:U2qFJJrM.net] まあ、すぐにサイズオーバーになるのでごく簡単な絵しかアップできません。 sssp://o.8ch.net/j8zz.png
591 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 12:14:37.99 ID:8cb+/Ta9.net] 消せないから気軽にあげられないのがちょっとあれよね プログラム板なんだから自分で書けば良いよ てことでobjcで書いてみた サイズの頭打ちがあるからと思ってインデックスカラーに圧縮したけど弾かれるのね sssp://o.8ch.net/j90c.png
592 名前:デフォルトの名無しさん mailto:559 [2016/11/18(金) 12:22:18.47 ID:U2qFJJrM.net] IMP関数ポインタの SELパラメターの件 正直言うと、自分にはコメの意見の善し悪しを判断する能力ありません...。 ググるとこれ使って >>561 で書いたような事ができるようですが (参考:class_addMethod) 設計側はそういう用途まで考慮していたのかは、よく分かりませんでした。 シグネチャを共通にしたかった? どうなんでしょう、それって何か気持ちいいから以上の理由はあるんですかね。
593 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 12:39:28.44 ID:QxITf25H.net] >>580 シグネチャが共通というより、同一の関数なので同じシグネチャなんですよ。 ランタイムが呼ぶメソッドの実体も、IMPを取得してダイレクトに呼ぶ関数も、「同じ関数」です。 その関数の引数が (id, SEL, …) なんですね。
594 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 12:42:31.61 ID:QxITf25H.net] で、自分はIMPは使いません。 IMPを使うくらいならCの関数を書けばいいだけなので。
595 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 12:51:34.13 ID:QxITf25H.net] Objective-Cは、以前はメソッド呼び出しのオーバーヘッドがネックになってたようなので、 IMPのAPIは、既存クラスのメソッドを高速に呼び出すために作ったんじゃないですかね。
596 名前:デフォルトの名無しさん [2016/11/18(金) 13:05:14.30 ID:sBZu/NEl.net] >>578 いやぁ、うれしい。 秘伝のテクを開陳してくれて、あんがとう。 けど、JavaSou苦手なんすよねぇ。 tarea(text area)を取得して、その直前にinput, script要素を挿入してinputボタンの押下で foo関数を呼ぶ様にしてるって事みたい。 FireFoxもGeasemonkeyも使った事無いっす。 Safari, Chromeでも同じ事できるんでしょうか? Geasemonkey for Safari, Chromeを探せって事なんすね。 いま、WKWebViewでもloadしたhtml, cssを書き換えられないか?調べてます。 Geasemonkey likeな動作をどうやってさせようかと!
597 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 21:20:02.14 ID:U2qFJJrM.net] ObjCスレだからObjCで頑張るのはアリかもしれませんけど、物事には適材適所ってもんがあるとおも...。
598 名前:デフォルトの名無しさん mailto:sage [2016/11/19(土) 03:19:56.84 ID:vr8hDAX5.net] 適材適所かどうかは自明ではないね
599 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 10:43:02.50 ID:EbyefIsj.net] みんなSwiftに移行しちゃったの? Swift始めた頃、小さな仕様がコロコロ変わるからObj-Cに戻ってきてたけど もう安定したのかな。
600 名前:デフォルトの名無しさん [2016/11/28(月) 16:59:47.56 ID:AK2eqXeC.net] >>587 Swift3でメソッド名の整理が行われて、短くなった。 "Taylor".writeToFile("filename", atomically: true, encoding: NSUTF8StringEncoding) "Taylor".write(toFile: "somefile", atomically: true, encoding: String.Encoding.utf8) 上2.3/下3 Swift3が良さげに見えるのでObj-Cからの移行者がボチボチ増えてるかも。
601 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 23:57:30.93 ID:48Nf+y
] [ここ壊れてます]
602 名前:qm.net mailto: >>587 殊Swiftにおいて仕様が安定することはまだしばらくないだろう Swift5くらいじゃね?安定版は [] [ここ壊れてます]
603 名前:デフォルトの名無しさん [2016/12/01(木) 09:30:20.02 ID:RHRo1hP4.net] コンパイラとしての安定性は最初から問題無いんじゃない? コンパイラが原因でアプリが落ちるっては経験無いなぁ。 C++、Javaが最近仕様変更が激しいのと同じく、Swiftだって言語仕様変更があるって事で、コンパイラとしては安定してると思う。 例:C++TR1, C++11, C++14 JavaSE6, 7, 8, 9 Swift3の言語仕様変更は、現在アナウンスされてないんじゃないのか?Swift4ってのはABIの導入って事で、言語仕様の変更じゃ無いし。
604 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 12:10:25.84 ID:5zfWITAP.net] ぬるぽで落ちてもコンパイラのせいです(kr
605 名前:デフォルトの名無しさん [2016/12/01(木) 12:43:47.19 ID:RHRo1hP4.net] >>591 それは、nil guardしてないコードのせい!
606 名前:デフォルトの名無しさん [2016/12/01(木) 17:17:16.90 ID:ODvXgIax.net] キチガイの集まり・創価学会・公明党! 人殺しの殺人鬼が政治活動・創価学会・公明党! 池田大作・人殺しの殺人鬼・創価学会・公明党! あやかりドチンピラの池田糞作・創価学会・公明党!
607 名前:デフォルトの名無しさん [2016/12/02(金) 10:10:54.60 ID:84dQUHiS.net] 禁止語句、に追加すれば、見なくてすむよ!
608 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 14:45:44.29 ID:rA9b0IH0.net] 孔明党ならゆるされるのだろうか? 仲達「ゆるさないぞ!」
609 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 10:42:29.07 ID:iWjUJEoY.net] メッセージをたくさん送る時、[[[なるじゃん? みなさんどう打ってます?Xcodeに自動補完とかあるの?
610 名前:デフォルトの名無しさん [2016/12/07(水) 11:09:26.74 ID:lAZ4q7Te.net] >>596 適当に打って、あとから余計なのを消す。 余計を検出するのは、XVimの%コマンドを使う。 matchitとかっていうpluginをterminal.appで使うって手もある。
611 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 12:37:41.63 ID:YlvsrELD.net] >>596 ]を打ったら状況に応じて勝手に[を入れてくれるよ 入れる場所を間違えてエラーになる事もあるけど
612 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 15:21:19.56 ID:iWjUJEoY.net] ありがとうございます! SwiftからCocoaプログラミングを始めて、その背景を知りたかったのでObjective-Cをちょこっと調べてました。 そこで、気になって質問しました^_^
613 名前:デフォルトの名無しさん [2016/12/07(水) 15:35:56.63 ID:lAZ4q7Te.net] >>599 俺と同じパターンだね。 Objective-Cのサンプルを読む事もあるしね。 Swift -> Objective-Cって人も最近は居るだろうね。 Swift3からObjective-Cを見ると、冗長な部分が目立ってしまう。 例: obj-c: dissmissViewControllerAnimated: complition swift3: dismiss#animated: Objective-Cはコンパイル早いっていうメリットがあるけどね。
614 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 15:48:24.59 ID:iWjUJEoY.net] >>600 そうですか! 言語は新旧ありますが、ロジックやフレームワーク自体に優劣がある訳ではないので、Objective-Cが読めるとプラスですよね
615 名前:デフォルトの名無しさん [2016/12/07(水) 16:09:27.53 ID:lAZ4q7Te.net] >>601 Swift3からiOSいじり始めた俺からすると、obj-Cは怖いわぁ。 Swiftにおけるnilに相当するのがobj-Cには、 nil、Nil、NULL、NSNullと4つもある。 Frameworkにあるメソッドにnilを返すものとerrorをthrowするものと混在するのも おれは混乱するわ。 それから、未だにOptionalが返って来た時に、どうやってunwrapするか、 すなわちnon-Optionalにするのかも混乱する。 1. if let or guard letを使う 2. coaleasing opperator ??を使う 3. forced unwrappingする
616 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 00:46:26.18 ID:68yJ6/bb.net] >>598 メッセージ呼び出しの自動補完はifの周りが割と鬼門だよね、式の解析が一部混乱してる感じ くっころさんになることたまにある。
617 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 13:46:48.92 ID:7KRIzock.net] https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
618 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 09:51:52.86 ID:6vWCzpx7.net] Bool areInst(int thing1, int thing2) { return(thing1 - thing2) } これ、YESかNOが返されるんだけど 0か1が返ってくるには、どうすればいい?
619 名前:デフォルトの名無しさん [2016/12/16(金) 10:15:26.25 ID:OzPYYpv3.net] >>605 if YES { return 1 } else { return 0 }
620 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 17:11:03.02 ID:qY2M4Y7r.net] aac→pcmの変換について教えて。 ネット上のファイルからaacのデータ取ってきて、 1.AudioFileStreamにデータ食わせてAudioFileStreamPropertyListenerProcを受けてからASBDを取得。 2.1.のASBDをAudioConverterのインプットに設定。アウトプットはAudioUnitのインプットと同じ設定。 3.AudioConverterFillComplexBufferを呼び出してAudioConverterComplexInputDataProcのコールバックで、AudioFileStreamPacketsProcで通知されたデータを渡す。 という流れでデータを処理してるんだけどいくつかのコンテンツでAudioConverterFillComplexBufferがエラー(1852797029)で帰ってくるんたが理由がわからん。何でかわかる?
621 名前:デフォルトの名無しさん [2017/02/22(水) 21:35:58.65 ID:bVPEWVD2.net] video.fc2.com/content/20170222aQ2BSKaX
622 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 09:40:08.04 ID:hWTo6NC+.net] >>607 解決した。データが微妙におかしかった。
623 名前:デフォルトの名無しさん [2017/07/09(日) 12:41:36.82 ID:GCKhJDjB.net] gfortranでコンパイルしたfortran subroutineをObjCから呼べますか?
624 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 17:45:16.59 ID:8iS3GcZb.net] Objective-CというかCからで、gcc(gfortran)はCへのインターフェースを用意してるし、gccといえどもプラットフォームOSのオブジェクトを吐き出すんだから、clangでのオブジェクトとつーかーでリンクできるから呼べるだろ
625 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 19:25:46.94 ID:XPzyjd3D.net] Cでできることはすべてできる そう、Objective-Cならね
626 名前:デフォルトの名無しさん [2017/07/09(日) 19:30:40.19 ID:GCKhJDjB.net] gfortran -c test.f をコンパイルしてtest.oを得たとします。test.fに入ったsubroutineをObjCのmain.mから呼ぶことができますか? clang main.m test.o -framework Foundation -o a.out こうやってコンパイルできるのでしょうか? 調べると、binary compatibilityがあるよ!って話がヒットします。
627 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 19:47:18.04 ID:8iS3GcZb.net] コンパイルというかリンクできるかリンカーのお仕事 リンカーの理解できるオブジェクトはGCCでも排出できる。言語の違いはCのインターフェースで共通。なのでできるだろ やってみろよwやってできなかったらこっちで検証してみてやるよ(えらそうw)
628 名前:デフォルトの名無しさん mailto:sage [2017/08/04(金) 11:02:58.83 ID:Xk8/NaTI.net] swfit4も結構変更があるみたいだね。 swift5もでるみたいだし、objcでいいや
629 名前:デフォルトの名無しさん [2017/08/04(金) 11:16:18.04 ID:PF1N3/4o.net] >>615 ObjCで作るiOSアプリの方が、Swiftのそれよりキビキビ動く印象があるけど、 どうなんでしょうか?
630 名前:デフォルトの名無しさん mailto:sage [2017/08/04(金) 12:00:05.92 ID:CVNSY5Yd.net] 今まで通りObjective-Cでは困らないんだよね..
631 名前:デフォルトの名無しさん mailto:sage [2017/08/04(金) 13:36:11.66 ID:ZGf6UrbU.net] もう俺kotlinのiosサポート待ちなんだが
632 名前:デフォルトの名無しさん mailto:sage [2017/08/04(金) 17:00:30.23 ID:Xk8/NaTI.net] XcodeProjAdder
633 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 09:11:30.54 ID:AGcDSNVp.net] 結局Objective-Cがなんだかんだ柔軟性があって使いやすい
634 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 09:30:13.70 ID:ocnuRu9M.net] Objective-Cをディスってるやつらが理解できないな C言語使ったことないのかね
635 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 09:53:25.64 ID:t7RO58+g.net] Cをと言ったら老害扱いするヤツもいるからなw
636 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 10:41:10.52 ID:XESdgnCd.net] Cを使ってたから[インスタンス メソッド:引数 キーワード:引数]の冗長になる表記が鬱陶しかった ObjCを絶賛してる奴らはC言語を使ったことないのかね、とは思う しかし、最近追加された_Nullable, _Nonnullはどうにかならんものかのう アンダーバー一つなのと大文字で始めるのが気に入らねぇ、nullable, nonnullだけにできなかったものか Apple様がサードパーティライブラリなんて気にしてるんじゃねぇよ
637 名前:デフォルトの名無しさん [2017/08/05(土) 12:50:06.76 ID:x2WXXz7r.net] >>623 #defineマクロ使ってnullableって書けば良いじゃん。
638 名前:デフォルトの名無しさん [2017/08/05(土) 12:59:54.68 ID:x2WXXz7r.net] #define nullable _Nullable
639 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 15:28:20.27 ID:AGcDSNVp.net] >>623 わろた まあ、そのメッセージ記法は最初見たときはその変態的な表記方法に非常に面食らった なんせその[や]を使うのは配列だと決まっていたからな でもとりあえず使っているうちに、Cの関数表記とObjectiveな部分が非常にわかりやすく共存できるという事実に気づいたとき一気に好きになったのを思い出した
640 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 15:30:37.83 ID:Xkpybudy.net] この言語完全にオワコン
641 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 15:31:16.18 ID:AGcDSNVp.net] >>627 Swift使ってればいいと思うよ
642 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 15:35:09.48 ID:v6ezSTSe.net] >>624 >>625 まあ言い方悪いけど所詮Cだからどうとでもなるよな それがObjective-Cのよさでもあるけど
643 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 16:01:05.93 ID:QC2awpIr.net] どうとでもなることはどうでもいいんだよ 一度__nullableで切っておいて、サードパーティライブラリと競合するから_Nullableにするわって仕様変更した上に _Nullableとnullableをダブルスタンダードで生かす仕様としていることが可笑しいんだよ 昔のAppleなら__nullableを残したままnullableがモダンだからってnullableの利用を推してたと思うんだけどなぁ __nullableから_Nullableへの仕様変更とか訳わからんことするのは、やっぱりジョブズがいなくなった弊害か
644 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 16:09:21.82 ID:UQl/9zAR.net] 定期的に「変態表記だから〜」って人が湧くけれど わけのわからん重箱的なとこにいちゃもんつけてる人は だいたい不満を持ってるのは本人が言ってるそこではないのが普通なので すると、どこだ?って発言を追った時に透けてくるのが 「メッセージングが気に入らない」で これ結局オブジェクト指向なんて〜おじさんなんじゃwwwとw
645 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 16:25:52.03 ID:AGcDSNVp.net] >>631 メッセージングとはいっても結局事実上メソッド呼び出しとなんら変わらんからな
646 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 16:56:54.30 ID:QC2awpIr.net] [や]は重箱的じゃなく大局的な表記の問題だと思うんだけど、それは・・・ そして、_NullableはObjC変態表記を問題視してるんじゃないよ、Appleのスタンスを問題視してるんだよ 「メッセージングが気に入らない」はDynamic Dispatchなのが嫌なんでない? 事実上はコストが上乗せされる別処理になってるわけだし # アンチObjCもObjC信者もそこまで考えてない気がしなくもない
647 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 17:27:05.60 ID:GxOZ02Sj.net] [r method:x label:y]; func(r, x, y);
648 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 17:31:27.19 ID:GxOZ02Sj.net] r.func(label:x, label:y)
649 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 18:04:47.25 ID:AGcDSNVp.net] >>633 Dynamic DispatchはObjective-Cの話に限らないのでなんとも... nullableについては表面的なモダンさを表面的に考えて追求する雰囲気がSwiftが出だしたくらいから社内で蔓延してるからじゃないの 社員じゃないから知らんけど >>634 >>635 だからSwift使ってればいいと思うの
650 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 18:13:52.73 ID:GxOZ02Sj.net] 大した違いじゃない だが「この変態!」という根強い意見にも耳を傾けなければならない
651 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 19:23:41.38 ID:AGcDSNVp.net] >>637 だからSwift使ってればいいと思うの...
652 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 19:39:40.05 ID:QC2awpIr.net] Swiftが出る前から Objective-C 2.0 を Modern Objective-C と銘打ってモダンを追求してたし、それについてはいつものAppleよな SwiftはDynamic Dispatchを減らす機構を入れてObjCに比べて速度向上を図ったらしいから、ObjCにもバックポートして欲しい OptionalやGenericsと同様、Swiftで試作してObjCに取り込めば皆ハッピーなんだよなぁ
653 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 19:40:24.64 ID:GxOZ02Sj.net] >>638 変なこと言う奴だな あいにく俺はSwift使ったこと無いんだわ
654 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 19:42:36.20 ID:AGcDSNVp.net] >>640 あ、そうなんだ >>635 を書くくらいだからてっきり メッセージ式の表記ってそんなに気になる? 自分が最初にはまったのはセレクタの時のコロン忘れかな それ以外はあまり苦労した記憶がない
655 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 19:46:59.94 ID:GxOZ02Sj.net] >>639 速度がネックだったObj-Cランタイムだってアセンブラで書き直したらしいし 速度向上と言っても大したこと無いけどな nilなら何もしないルールがあるからランタイムを経由しないわけにはいかない >>641 三番目の>>635 はSwiftじゃなくて俺俺言語 あいにくSwiftのようになったようだが
656 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 20:03:05.50 ID:AGcDSNVp.net] Objective-Cが当初敬遠されたのはObjective部分のsyntaxというよりはメモリ管理だと思ったが まあそれに追い打ちをかけるようにallocとinitの組み合わせが普通に頻出したもんだから変態的だと思う人が多かったのだろう さらにオブジェクト変数がポインタともなればなおさらだろうな Object *obj = [[Object alloc] initWithParam: a];
657 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 20:28:36.38 ID:GxOZ02Sj.net] 俺は別に、Obj-Cは実引数の順番が変わるぐらいで変態だとは思わんね ラベルは有った方がいいし、第一引数は省略可とすべきだし 今風のシンタックスにするとあら不思議Swiftみたいだね
658 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 20:34:58.96 ID:AGcDSNVp.net] >>644 だったらこんなところにいないで、あなたがイメージした理想syntaxと近いSwift使えばいいじゃん...
659 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 20:45:40.97 ID:NrXpiBRr.net] 何かおもしろいやつがいるな >>644 を意訳すると Swift使ったこともないから全然知らないんだけど、普通に自分で今風の文法みたいの考えてみたら謀らずともSwiftになっちゃった 俺でも思い浮かぶほどSwiftって自然な文法だっんだ!Swift最高じゃん! でおk?
660 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 20:50:17.10 ID:GxOZ02Sj.net] >>645 ,645 いや俺Swift嫌いなんだよw ポインタ扱いづらいだろ、よく知らんけど その割に仕様を減らすんじゃなくて増やしてるし
661 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 20:53:47.23 ID:AGcDSNVp.net] >>646 www いや俺ももはやこの人が何を言いたいのかよくわかんなくなってきたのよ...
662 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 20:56:12.81 ID:QC2awpIr.net] メモリ管理のalloc/freeやポインタ変数なんてそれこそCをやってたら気にならないでしょ... >>642 本当に性能良くなるのは特定条件下でさほど影響が出るものじゃないよなw それでもまぁObjCがSwiftに劣っている点ではあるので、気が向いたら対応して欲しいものよ
663 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 20:59:57.92 ID:GxOZ02Sj.net] >>648 それはちょっと色眼鏡で見すぎだね アンチすぎるんじゃね?w 俺は使わないからどうでもいいし、Swiftはアンチになるほどの存在では無い
664 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:00:23.43 ID:AGcDSNVp.net] >>649 いやそのはずなんだけど、結局Objective-Cをディスってる人がけっこういるのは、純粋なCをちゃんと使ってた人が殊PCアプリプログラマにおいては少なかったってことなのかね?
665 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:05:32.04 ID:GxOZ02Sj.net] >>649 コンパイル時に静的に解決したいメソッド呼び出しには、たぶんレシーバにnonnull必須になるのかな それがSwiftにnonnullが必要だった理由かも Obj-Cで高速化が必要な場合は、Cで書いちゃえばいいのでいらんと思うけどね
666 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:09:23.61 ID:NrXpiBRr.net] とりあえずSwift使ったことないとか言ってるわりにわりと細かいSwiftネタ挟んできてて草
667 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:10:26.33 ID:GxOZ02Sj.net] >>653 気にしすぎだってw
668 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:15:06.89 ID:NrXpiBRr.net] >>654 いや誰がみてもSwiftの最新情報を調べてるレベルだろ 使ったことないのに嫌いとかいっちゃうほどバカじゃないだろうし 隠す理由が謎
669 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:19:04.08 ID:GxOZ02Sj.net] >>655 全然調べてないよw 自分でもたまに心配になるくらいに 俺俺言語とした例は、開発中のインタープリタの構文なのさ JS, C#, Swiftあたりを参考にしてるから似てるんだよ
670 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:21:37.41 ID:NrXpiBRr.net] >>656 嘘に嘘の上塗りをしてるようで芝居臭いが、まあじゃあ嫌いなSwiftみたくならないようせいぜい参考にしていい言語作ってくれ
671 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:23:19.82 ID:GxOZ02Sj.net] >>657 大嘘ってことにしといてくれww
672 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:26:46.26 ID:NrXpiBRr.net] >>658 わかったよ、嘘つき
673 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:40:23.31 ID:AGcDSNVp.net] (^_^;
674 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 21:53:47.03 ID:QC2awpIr.net] >>651 いやだから、メモリ管理は問題じゃなくて、文法が変態的だからディスられてるんじゃないの [ ]とか、@とか、冗長な命名規則とか、純粋なCをちゃんと使ってた人ほど辛いわ CのコードはObjC上にコピペで動くけど、ObjCのコードはC上にコピペでは全然動かないよね それくらいにCとObjCは別物になってて、他に類を見ない独自文化を作り上げてるから取り回しの悪い言語だとディスられる
675 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 22:03:06.65 ID:AGcDSNVp.net] >>661 事実上Objective-Cの文法で書くところはCocoaフレームワークを使う部分だからそれをCで書きたいケースはないと思うけど よりprimitiveな処理をする部分について資産流用したくてCソースをインポートしたいことはあると思うけど 自分はこれくらい明確に違う方がCとCocoa部分がはっきりわかっていいと思ったけどな 命名規則はObjective-CというよりCocoaの約束かと @やコンパイラディレクティブを多用してるのはObjective-Cが純粋なCのスーパーセットであるという仕様上仕方ないと思うけど確かに正直変態的だと自分も感じたのは事実だが...
676 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 22:08:18.49 ID:AGcDSNVp.net] まあかく言うおれも最初Objective-Cのソースに触れた時は[ ]とかいうわけわからん記法でメソッド呼び出ししてるかと思えばNSLog(@"hoge¥d", n);とかも同じソースに書かれてたりして、はぁ?どっちだよとは思ったけどなw
677 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 22:09:17.65 ID:AGcDSNVp.net] ああ、%d...
678 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 22:25:34.05 ID:ydBhceAI.net] Objevtive-Cが変態的と言われるのは、まあ、しょうがないが、すぐに慣れることだな。_がどうとかもどうでもいい細かいことにこだわるなあw
679 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 22:29:47.63 ID:
] [ここ壊れてます]
680 名前:ggnuHEiJ.net mailto: NSObjectってC側から見ると構造体にすぎないから cから触ることが可能って聞いたけど本当? [] [ここ壊れてます]
681 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 22:33:45.97 ID:ydBhceAI.net] >>661 >CのコードはObjC上にコピペで動くけど、ObjCのコードはC上にコピペでは全然動かないよね こんなアホ(失礼)なこと言ってるんじゃ、その下や上の「純粋なC」どうとか言える立場になさげ/知識がほとんどなさげにしか見えない
682 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 22:37:31.68 ID:GxOZ02Sj.net] >>666 @def使えばコンパイル時に構造体と見なしてメンバーフィールドを直接触れたはずだが、 非推奨なんで使用禁止になったかもw わからん 不透過型構造体のポインタだから普通には無理 ややこしいことをすればできたと思うが、普通はやらない
683 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 23:01:09.52 ID:GxOZ02Sj.net] ああメンバーじゃなくオブジェクト自体のポインタのことなら触れるよ そもそもObj-Cがポインタ渡しだし
684 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 23:10:37.16 ID:slWszTbQ.net] 急に盛り上がってる
685 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 02:17:31.34 ID:5hrgPajG.net] とりあえずここまでをまとめるとObjective-Cは変態的だけど柔軟性は半端ないでいい?
686 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 02:40:44.78 ID:EhIWQ3kd.net] 「おれけっこう柔道やってたからさーグレイシー柔術が変態にしか見えないのよねー」 (…そもそも違うものやんwwwなにが言いたいんやこのオッサンw) だいたいこんな。
687 名前:デフォルトの名無しさん [2017/08/06(日) 08:16:47.23 ID:A+R4LQxw.net] >>647 それ判る。 C言語の関数と一緒にSwiftを使うのは大変。 構造体へのポインタを引数に取るC言語の関数を、Swiftで呼び出すの、 どうすんだ? UnsafeRawPointer<XXX>とか使うんだろうけど。
688 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 08:18:51.28 ID:5hrgPajG.net] >>673 SwiftとCを一緒に使うくらいならObjective-Cでいいよね
689 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 08:22:40.12 ID:5hrgPajG.net] >>672 すまん、よくわからんw
690 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 10:45:42.87 ID:/dqOVGNE.net] ポインタがないSwiftだとCの関数呼ぶ時そこそこ面倒なんだな
691 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 13:23:04.82 ID:h75sRnvC.net] >>671 クラスとクロージャが使えるメモリ管理不要のC言語(C++も使えるよ)
692 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 13:31:20.41 ID:h75sRnvC.net] ああ根本の動的ディスパッチが抜けてたな
693 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 15:30:44.79 ID:5hrgPajG.net] >>677 >>678 なるほど 結局オブジェクト思考なC言語なんだよってところはその通りだよな
694 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 15:51:16.15 ID:6obaa7Zo.net] objcの一番のやばい所は実行中にコードの変更が出来ちゃう事だろ そのせいでAppleもカーネル関係ではobjc使えなくてc++使ってんだから
695 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:03:11.05 ID:5hrgPajG.net] >>680 Could you tell me the details?
696 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:21:29.43 ID:h75sRnvC.net] 実行中に変更可能なユーザーインターフェースをプログラマが作ればね そりゃ根本が動的ディスパッチだからどうにでもなる >>681 クラスもセレクタもユーザー入力で改変可能に作れる
697 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:27:58.98 ID:5hrgPajG.net] >>682 まじか 柔軟性はんぱねぇな でもそれは当然ソースコード上でってことでしょ? 脆弱性とは違うと思うけど
698 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:32:36.09 ID:ZQYigHRc.net] プラグインでメソッド交換出来るのを知らんのか。
699 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:47:40.53 ID:5hrgPajG.net] すまん知らん(爆 でもそれはあくまでそう作ればでしょ? 逆に他の言語だとできないの?
700 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 16:59:14.99 ID:h75sRnvC.net] >>685 要は、クラス/セレクタは、文字列から取れる/生成できるから、 それを利用した悪意あるコードを書けるし、プログラマが意識せずそうなってる事もありうる
701 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:15:30.25 ID:ZQYigHRc.net] >>685 作れば、じゃなくてObjC のメソッド呼出しは最初からそうなってる。 古い情報だがここら辺読めば分かる news.mynavi.jp/column/objc/043/ がお前は何も分かってないみたいだから読んでも無理か。
702 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:28:11.19 ID:uZylSw7t.net] >>667 お前、ObjC使ってるのに[や]を使わないのかよwww面白いなwww
703 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:37:29.52 ID:uZylSw7t.net] >>677 C++が全く同じこと出来てるんだよねぇ 常に動的ディスパッチという点は実現してないけども まぁC++の機能をモダン()に文法ラップした言語がObjCだから当然なんだよな 変態文法でC使ってると取っ掛かりは辛いけど、まぁ慣れれば使えなくはない言語よ
704 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 17:57:03.87 ID:5hrgPajG.net] >>686 結局セレクタ(=文字列)としてマシン語に組み込まれちゃうからハッキングされるってこと? >>687 ありがと でも一言多いんだよなぁ。。
705 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 18:06:37.63 ID:h75sRnvC.net] >>690 その辺は悪意を持って追求した事無いけど、やり方は色々あるだろうね
706 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 18:08:19.22 ID:5hrgPajG.net] >>689 Objective-CとC++でほぼ同時期に独立して開発されたんじゃなかったっけ
707 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 18:09:36.01 ID:5hrgPajG.net] >>691 仮にセレクタ文字列がそのまま一意にマシン語にコーディングされてるとなると、なんかJavaのバイトコードみたいで微妙だなぁ
708 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 18:35:06.60 ID:0XdHuxlK.net] >>688 イミフすぎ 何言ってるの?ぶりからは同一人物か?ww
709 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 18:54:49.85 ID:0XdHuxlK.net] >>680 そのせいではなくて、単に速度やコードの重さからだろう。言っているのはIOKitのことか?カーネルの部分ではC++でさえなくCだし Objective-Cのその部分でナニかあったというのは聞いたことは無いなあ。なぜかw フックするのは簡単だが、フックするコードが活性化するのは簡単じゃないし。まあまだ簡単ぽいのは閉じる生きづらい方向にはしているけど
710 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 19:09:48.12 ID:5hrgPajG.net] >>695 すまん日本語で頼むわ
711 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 19:34:46.57 ID:0XdHuxlK.net] >>696 ん?? まさか >フックするのは〜 の部分じゃねえだろうな?wてか、無理せずに読めないなら読まなくていいよ。あたなのレスにレスしてるわけでもなく
712 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 19:36:00.87 ID:5hrgPajG.net] >>697 >まあまだ簡単ぽいのは閉じる生きづらい方向にはしているけど
713 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 19:47:33.45 ID:0XdHuxlK.net] >>698 ああ 前のはIM plugin(だったけ)で簡単に、それが閉じられてScriptプラグインでとか。それもrootlessになってrootless解除してからじゃなきゃという、 (ある意味)まっとうなプロダクトであるSIMBLが/を使えるようにするのがめんどくさくなってるというのが代表的かな
714 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:19:06.33 ID:uZylSw7t.net] >>694 すごいなー、メッセージ式表記使わないでObjC書くんだなー C関数しか叩かないでObjCコードを書く変態は尊敬するよ
715 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:22:06.82 ID:0XdHuxlK.net] >>700 いやあ、マジで何言ってるの?www もうキチとしか見えないぞ。いいのか?w
716 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:27:26.94 ID:5hrgPajG.net] お前ら何を言い合ってるんだよ。。
717 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:28:29.68 ID:0XdHuxlK.net] >>700 メッセージ式だのObjective-C固有/追加された部分があるから、Objective-CをCにコピペってもCコンパイラが理解できるわけないじゃん。んなこと言うのもなんか恥ずかしいw当たり前のことをさも言うのはナニもわかってないんだろな (そうでないからCじゃなーいとか言いそう/言いたいのかもだが) っていうのがそもそもの意味なんだが。なんでそんなトンチンカンすぎるキモい絡み方を続ける意味がわからん。同一人物だったらありそうだがww これ以上イミフすぎ
718 名前:のレスするなら、真性とみなすぞ [] [ここ壊れてます]
719 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:29:43.72 ID:0XdHuxlK.net] >>702 しらんwwまったくわからん。そりゃお前にもそう見えてもしょうがないww
720 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:30:22.17 ID:m6etrNEf.net] オブシー使ってるやつはキチガイってよくわかるスレ
721 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:32:05.49 ID:5hrgPajG.net] >>705 世界中にどんだけキチガイがいるんだよ。。。
722 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:33:41.03 ID:h75sRnvC.net] キチガイは褒め言葉だぞ
723 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:34:37.21 ID:uZylSw7t.net] ObjCコードがCコードにコピペできるって愉快な信者をからかって遊んでる 多分、NSLogとかのC関数だけ使って NSObject *object = [NSObject new]; なんて[]を使うコードは書かない変態なんだよ やっぱりObjC信者は変態ばかりだな(褒め言葉
724 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:38:13.55 ID:5hrgPajG.net] まあなんだろうな conventionalなC言語のソースコードはObjective-Cのソースコードでもある なぜならObjective-CはCの純粋なスーパーセットだから
725 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:40:19.87 ID:0XdHuxlK.net] >>708 はあ?遊んでるww 「読めない」のはわかったし、それはしょうがないし特にとは思わないが、そこまでんなこと言った覚えは全く無いことをさもなのは自分の脳内で閉じてるという真性に近しい人でしかないと思うぞ。なんの為にレスしてんだか…そか、真性だからか?w
726 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:42:18.48 ID:uZylSw7t.net] >>703 でだ、元々はCとObjCが全然違うもので、CやってたからってObjCが素直に慣れられるものじゃないって話をしてたわけでな その話の流れを見てないで、「ObjCがCにコピペできるわけない」の部分だけ取り上げて云々ってのは話がズレてるわけよ そのズレを笑いどころにネタを振ってくれてるんじゃないの?本気でそこを指摘してるの?
727 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:42:20.49 ID:0XdHuxlK.net] >>709 元々はCのプリコンパイラでなかったっけ? 確か、今でも、Objective-CのソースからCのソースを捌けるはず。なので、CでObjective-Cクラス/機能をバリバリ扱えないこともない。それをするのは人間業ではないけど
728 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:45:20.71 ID:0XdHuxlK.net] >>711 お前にとってはそうかもしれないが、そんな当たり前すぎることを言うこと自体がって話だよ。普通は言わないと思うぞ。んなこというヤツの知性が疑われるからな で、お前が言う元々の話も、お前はそうかもしれないでしかない。Objevtive-Cのよほど初心者の本でなければ、Cを知っているのが前提だからな。お前の論で言えばCを知っているのが前提ってありえないだろう
729 名前:デフォルトの名無しさん [2017/08/06(日) 20:51:12.38 ID:A+R4LQxw.net] >>708 NSLogはC言語の関数ではないだろう! Objective-Cのグローバル関数。 書式文字列なんて、C言語とは全く別。%@とか。 引数も、Objective-Cのインスタンスが必要。 @“OK”とか!
730 名前:デフォルトの名無しさん [2017/08/06(日) 20:52:15.75 ID:A+R4LQxw.net] >>714 ぁぁ、間違えた。@“OK”はNSStringのインスタンスね。
731 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 20:54:43.07 ID:/dqOVGNE.net] 久々にObjective-Cでググったらこんなページが qiita.com/koher/items/4aea541fd0f0d8a9a166 こんなあからさまに臭いことするからSwiftはゴリ押しとかいわれるんだよな..
732 名前:デフォルトの名無しさん [2017/08/06(日) 20:57:10.69 ID:A+R4LQxw.net] おっと、NSLogってのはFoundation Functionってカテゴロリに分類されてるね。 NSAssert, NSLogvとかと同じなかまかぁ。あまり意識した事なかったけど。
733 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:00:36.71 ID:5hrgPajG.net] >>714 その話は微妙なところだな ある意味でObjective-Cたらしめてる部分でもあるんだが、関数はCといってもいいんじゃないだろうか まあCはObjective-Cに完全に内包されているのでObjective-Cの関数という表現も正しいと思うが 結局引数としてわたされるのはNSStringのオブジェクトであるとはいえ実態はただのポインタな訳で、ポインタを引数にとるただのC関数とも言える
734 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:02:32.09 ID:5hrgPajG.net] >>712 まあObjectiveな部分の記述はコンパイラディレクティブを使って分離してるからね
735 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:04:51.33 ID:0XdHuxlK.net] >>714 まあ、インターフェースがCなんだからCでええやん。CoreもCじゃないとか言うと、pure C (?)と C がごっちゃすぎ。まあ元々は pure C のことを言い出してるっぽいが、本人自体があやふやなので…w >>716 なんか前に読んだことある >nil に対するメソッドコールはエラーにならずに無視されるという悪しき仕様 ってとこで、ああ、この人は「そういうコード書く人」なんだなと。読むに値しないと判断したので、そんな単に個人のご意見に「臭いとかゴリ押し」とか噛み付くほどでも無いだろう (「そういう〜」というのは、逐次nilか注意してないでコードを書く人。意識してたら普通にその動作で問題無いのだがな)
736 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:07:13.58 ID:5hrgPajG.net] >>717 カテゴロリwww
737 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:26:34.09 ID:uZylSw7t.net] >>713 うーん、論旨が変わってしまってネタが分からなくなってしまった, >>711 のマジレスをなかったことにしたい 何かが間違っていてアホ(失礼)にあたるというツッコミ?ボケ?(>>667 )で、それが「ObjCのコードはC上にコピペでは全然動かない」じゃなかったのかいな 純粋なCをちゃんと使ってた人ほど文法がゴロっと変わるObjCは辛い、が当たり前のことでそれが誰かの失礼に当たる? まー、当たり前のことでもいいんだけど、それじゃObjCを擁護出来てないからそう言う意見じゃないよな ・Cの文法とObjCの(変態)文法は全然別物である ・純粋なCをやっているとObjC文法は素直に習得できる この二つを矛盾せずObjC擁護してくれるとありがたいんだが出来そうかね
738 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:26:49.45 ID:6obaa7Zo.net] >>695 まぁIOKitもそうだけど 内部でC++は結構使ってるよね KEXTだってKernel EXTensionなんだからカーネルと言ってもいんじゃん? 少しでも拡張性を持ってかつハックされたくない所のライブラリとかC++使わざるおえない感じを受けたよ てかmac自体初期から組み込みの色が強いからC++よく見るし親和性も高いイメージあるわ あと関係ないけどクリエイティブ関連って言うとあれだけどOpenGLとかCinderとかそういうのと同じ匂いがする objcはメソッドや昔はクラスごと入れ替え出来るからハッキングや割れが簡単なのが問題になったな セキュリティやシリアルの発行をobjcだけでやるようなエンジニアがアホなだけだけど 今でもSafariのハックは盛んだし昔はFinderにタブ付けたりしてたでしょ公式で対応しちゃったけど
739 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:27:32.73 ID:/dqOVGNE.net] >>718 そうだね Objective-C=C+Objectiveだからな
740 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:33:58.82 ID:/dqOVGNE.net] >>722 語弊を恐れずにいうとObjective-CのCはまったく別物でありながら同じでもあるといえると思う 正確にはCにまったく別の文法を使ってオブジェクト指向を純粋に足したものがObjective-C
741 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:36:01.59 ID:/dqOVGNE.net] ああ、肝心なところtypoした ×Objective-CのC ○Objective-CとC
742 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:39:48.15 ID:/dqOVGNE.net] >>720 確かに記事読むと表面的な話に終始してるな Objective-Cはその他に類を見ない柔軟性により玄人指向なのだろう 逆に本当にスキルがある人には使いやすいんだろうなって思う
743 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:45:13.30 ID:/dqOVGNE.net] >>723 まだCocoaが発展途上だった時代にCarbonとの親和性を確保する意味でもObjective-Cは都合がよかったんだろう
744 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 21:49:46.04 ID:0XdHuxlK.net] >>723 骨幹から(?) C -+-> C++ -+-> Objective-C かな KEXTはカーネルにすごい近いからカーネルと言ってもいいじゃんというまさしくそれに沿って別に簡単にフックできるから危ないからじゃなくてC++なんだろうという いろいろなプラグインなんて、それこそ今でもハッキングや割れ(?)が簡単にやり放題にできるけどね。だが、いまだにそんなのが無いんだな、これが。まあサンドボックスやrootlessでやりづらくはなってはいるけど んなとこから、IOKitがC++なのはObjective-Cが危ないからって話では無いだろうという俺論 >>725 一行で素晴らしいw彼もわかってくれればいいがw
745 名前:デフォルトの名無しさん mailto:sage [2017/08/06(日) 22:07:37.99 ID:5hrgPajG.net] >>722 >・純粋なCをやっているとObjC文法は素直に習得できる の部分については、オブジェクト思考部分以外はCそのものなので、単純に追加されたオブジェクト思考部分を記述する文法さえ覚えればいいので、Cをやっていた人からすると習得コストが低いと言えるんじゃないかな もちろんオブジェクト思考部分を記述する文法(=ObjC文法というのかな?)はCをやってた人からすると「変態的」なので最初は面食らった人がほとんどだと思うけど ただやって実際見たらそんなに覚えることそんなにないじゃん的な感じかと
746 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:31:33.61 ID:j1CBqyDH.net] >>729 いまだに無いって世間知らずにもほどがあるだろ? appStoreに移行しても被害額減るどころか増えてるんだから まあメソッド名隠さないで簡単に推理出来る名前のまま公開してる奴は擁護出来ないが objcは簡単に中身を書き換えられる&覗かれるってことを理解した上で書いてないシェアウェアが多いよね ただmac自体ユーザーが極端に少ないからそれらをやる人間も必要としている人間も少ないわけで目立たないだけだろう SIMBLだって今後使えなくなったとしても同じプロセス上にロードするだけで良いだけだから 動的なリダイレクトが出来る今のobjcの設計ならいくらでもやりようはあるからな カラーピッカープラグインでもロードされるタイミングでスウィズル出来るわけだし ただ結局それらは個ソフトウェア内だけだからあまり問題視されてないのが現状だろう、結局エンジニア次第だからな これがOSの根幹で出来るとなったらやばいどころじゃ無いのは簡単に想像出来るだろう
747 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 00:48:46.15 ID:fzx+TAun.net] >>731 知らん。例えば具体的にどんな?ニュースになるような被害って?例え少ないのでもMac関係では大いに報道するだろ(アンチなのは妙に誇大にするからアレだがw) あんな簡単に外部コードロード&フックできる仕組みなら、例えユーザ数が少なくたってある程度/かなりあっても不思議ではないだろ 別にObjective-Cに限らず、トロイにしろなんにしろ、なんでもできるのはそりゃそうだろ。そうじゃないと困るわ、生きづらいw だからそもそもナニかする手段はあるって言ってるだろ。それが具体的に悪用されてるのがどんだけあるのかって話だよ ネイティブコードが読み込まれるなら、Objective-CでなくてもMach-Oなプラグインだったら何でもできるだろうに、 なぜかObjective-Cだけ(危険/C++は安全??)とか、Objective-Cが簡単にフックできるからってのに捕らわれ、そうだからそうに違いないと言ってるだけにしか見えないな そういえば、iOSは頑なに内製Framework(というか、dylib/別にObjective-Cなdylibでなくてもいろいろできる)を認めなかったが、 なんかいきなりあっさり認めるようになったな。お前の言っていることとは逆じゃね?より厳しいiOSでなのに
748 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 01:04:19.31 ID:fzx+TAun.net] >>731 ・コードをシステムなりに入れて起動できれば、そんなのObjective-Cだろうが他の言語だろうが関係ない、別のこと ・そのアプリの機能に介在するナニかをしたい場合にObjective-Cでフック機能が便利 ・アプリの機能に関係なくなら、別にObjective-Cでなくても同じ危険性があるだけ アプリの機能に介在してナニかあくどいすることなんてそもそもそんなありえるのか?関係なくの方が多いだろう。トロイ的にだが、その手法はあることはあるし なんだかよくわからんが「これがOSの根幹で出来ると」いう、さもObjective-CでOSの根幹がありきのような話だが、そんなこと最初からないって言っているのがわからんのかなあ アプリレベルプログラマでもCoreとかObjective-Cの同クラスより高機能なのが並列している時点で、 Objective-Cはアプリ/サービスレベルのフレームワーク用=OSの根幹でんなことしてられねえ(めんどくさいのだか何だかわからんがw)ってわかると思うだが、なぜかそこがObjective-Cであったらという前提はただの妄想にすぎないと思うよ
749 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 06:19:41.05 ID:1ENgAefL.net] この流れがつまらない。 仮定の話で盛り上がるならオフ会でも行けば。
750 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 06:41:26.11 ID:n0QtNiqf.net] 物知らずの無知無知ボーイ ID:5hrgPajG が声高に頑張ってたせい。
751 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 07:26:00.83 ID:nZ0RU5t+.net] 「酔っ払いの喧嘩は外でやっとくれ!」 酔っ払いの一方:「あいつが悪いんだ!」
752 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 08:04:58.98 ID:a1ES+HTw.net] >>735 は?関係なくね?
753 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 09:16:12.87 ID:zZbb3/ny.net] >>735 何かした?
754 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 10:19:38.86 ID:0r/N/mwc.net] >>735 俺にも構ってくれよ
755 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 10:43:49.21 ID:GHOXhqb3.net] >>725 それは知っているよ、だからどうしたというね 別物である部分があるからって話をしてるんだから話を手前に戻さんでくれよ >>730 初めて真っ当なObjC擁護レスがきて感動した...(感涙 ObjC文法が多くなけりゃその通りなんだよねー 懸念はSwiftが出ても尚延々とObjC言語仕様を追加してるから、益々Cから離れていきそうでなぁ >>729 だから、お前は自分の意見を矛盾なくレスしろw >>657 のレスも結局ボケだったのかマジレスだったのか分からんぞ
756 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 12:30:02.80 ID:fzx+TAun.net] >>740 何言ってるの?www マジレスに決まってるやん。なんだCと同じじゃなきゃダメだって言ってるのか?それでも何言ってるのだがwダメだこりゃ
757 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:09:29.67 ID:GHOXhqb3.net] >>741 マジレスっつーことは意図することはこういうことか > 純粋なCをちゃんと使ってた人ほど文法がゴロっと変わるObjCは辛い、が当たり前のことでそれが誰かの失礼に当たる? 誰に何が失礼にあたるのか相変わらず分からないけど、共感してくれてるようで良かったよ Cと同じじゃなきゃダメだって言ってるんじゃないよ、共感してくれてる通りCと違いすぎてるから純粋なCやってるとObjCが辛いって言ってるんだよ
758 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:12:34.97 ID:0r/N/mwc.net] 218デフォルトの名無しさん (ワッチョイ 056c-cJAr)2017/08/07(月) 09:36:54.43ID:tO02o/C10>>222 >>213 メソッド呼び出しに、ドット構文が使えればObjCも描きやすくなるよねぇ。 Objective-C 3.0に期待だね。 id a = [[NSObject alloc] init]; ->id a = NSObject.alloc().init(); // こんな感じ! 221デフォルトの名無しさん (ワッチョイ d9b5-xdmZ)2017/08/07(月) 12:05:53.21ID:tDzZ+7xU0 >>219 obj-cの魅力ってあくまでcの拡張でありobj-cの世界は[]の中だけってスタンスであってほしいから ドット構文?はあんまり増やしてほしくない 個人的にはElixrのパイプ演算子(|>)をobj-cに採用して欲しい。 (元ネタはElixirじゃないかもしれないけど。) [NSObject alloc] |> [@ init] みたいな感じで使う。Elixirの場合だと返却値を次のメソッドの第一引数に渡すって意味だけどobj-cでは@を置き換えるみたいな感じで ObjCユーザ的にはこういう構文変更はあり?
759 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:32:41.53 ID:fzx+TAun.net] >>742 理解はするが、全く共感はしない 見慣れない構文に戸惑うが、そりゃ違う部分だから当たり前だろ。「辛い」なんて全くわからん。見慣れない構文もよく使うのがほとんどだから直ぐに見慣れるだろうに、なにが辛いんだか??
760 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 14:40:24.16 ID:fzx+TAun.net] >>742 ああ、なんかイミフでスルーしてたが、「失礼」って、俺が書いた「(失礼)」のことか?? だとしたら、お前にだよ。で、失礼の部分はそこじゃない。アホだなと思ったが、そう直球でいきなりアホ呼ばわりするのもっていう「アホって書くけど失礼」って意味
761 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 15:36:57.49 ID:GHOXhqb3.net] >>744 うんうん、理解できたのは良いことだぞ ObjC至上の宗教家っぽいし、共感できないのは信仰が違うから仕方ないんだろうね 流石に信仰を曲げてまで共感してくれとは思ってはないよ ただ、お前さんが共感できないからってアホとなじるのはどうかと思うし 信者がそういう言動をする所もObjCがディスられる要因なんじゃないかな
762 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 16:33:25.65 ID:fzx+TAun.net] なぜに上から目線?wwまあ、自己脳で完結してるのは知ってるからいいけど 宗教とか信仰とかただのアンチなのか?まあ、言いぶりからはお前は使っているっぽいのかなと思ったが、ちょっとやってみただけ(/やらされたのか?辛いらしいからw)が正解かな? 自分のモノにできてないのは確かのようだけど。で、やっぱ最初の俺のレスが正解か…ww なら続けた意味は、まあ、あったようななかったような
763 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 17:19:28.82 ID:nZ0RU5t+.net] 中身がCの文法で書かれたモジュールを Cの関数なんかじゃできなかったレベルで 取り回せるのが便利で評価されてる言語に 「そのCじゃない部分が嫌なのよね俺」とか ここで口を開くレベルにも至ってなくて草ボウボウwww
764 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 20:29:51.10 ID:zWbONOmM.net] >>743 既に出来なかったっけ?ドット構文
765 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 20:36:52.55 ID:n9zFQLuH.net] >>749 それはプロパティ限定。 seterとgetterの糖衣構文に限定してる
766 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:11:50.86 ID:zWbONOmM.net] >>750 あーそうだね スマソ
767 名前:デフォルトの名無しさん mailto:sage [2017/08/07(月) 21:19:43.31 ID:n9zFQLuH.net] >>743 それ。俺が書いたやつだけどマジで欲しいぞ。 https://github.com/ReactiveCocoa/ReactiveObjC これとかみてくれればわかると思うけど。 ネストが深くなると凄く書きづらくなるし。Rxの学習をobjCで始めるとマジで辛い。 swiftはopensourceになって提案できるようになってるけど objcにそういう仕組はないのかね
768 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 00:11:51.35 ID:fmNB/sG0.net] >>752 たぶんこのスレで[ ]のネストについてなんか言ったところで暖簾に腕押しだと思うけど
769 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 04:37:18.97 ID:qCAzS5bX.net] >>747 Swiftなんて商用利用に耐えないし他にApple OSで使える言語ないから、10年以上業務で使ってるよ 今更自分で使う分にはさほど問題ないけどだからってObjCは至上の言語!とか言うほど陶酔してないわ >>752 [ ]のネストの深さに味があっていいんだろ 慣れてくると冗長な命名規則と[ ]ネストの深さで1行あたりの処理がアホほど伸びて、それが美しく感じられるようになるぞ
770 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 09:10:19.12 ID:qTxWRpQR.net] メッセージ構文だろうがドット構文だろうがネスト数が多いこと自体が鬱陶しいだろ どっちかっつぅとクラス設計の問題じゃないの
771 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 09:54:27.79 ID:Apkyawzp.net] >>755 Rxの概念的な都合によるものだから どうしてもネストが深くなりがちなんだよね。 そもそもパイプが使えるとデバッグが楽だったりするし ネスト構造でログを間にはさみたいときとかどうする? 結局ネストを壊して一時変数に途中経過を代入して出力するしかないでしょ? メソッドチェーンなりパイプ演算子が使えると間に挟むだけになるから凄く メンテナンス性が高い
772 名前:デフォルトの名無しさん [2017/08/08(火) 09:55:18.73 ID:N1iCp3j/.net] >>755 Reactive Functional Programmingは必然的に多重ネストしちゃうが、 鬱陶しいとは、初めての意見だなぁ。 variable.asObserver() .foo() .bar() .baz() {|cell| // do something // do something } これって、鬱陶しいかなぁ?
773 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 09:55:30.87 ID:Apkyawzp.net] >>755 あとドット構文とかパイプ演算子を使うとネストは深くならない。 メソッドチェーンを繋げるとネストが深くなるとは言わないよね
774 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 12:01:58.34 ID:qTxWRpQR.net] ドットでも[ ]でも大して変わらないって自分は思うってだけ
775 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 12:24:05.02 ID:qCAzS5bX.net] [[[[variable asObserver] foo] bar] baz:^(id cell) { // do something // do something }]; ふつくしい
776 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 13:23:55.95 ID:F28KTTfx.net] >>759 そうとも言えるし、そうとも言えない リアルに最近、(ちょっと)ん?と思った文w [self menuItemsForPath:[[[node attributes] getNamedItem:@"representedFile"] value]] まあ、現在のObjective-Cでも、 [self menuitemsForPath:[node.attributes getNamedItem:@"representedFile"].value]; と書けば、全然w。ドットにしてみて、 self. menuitemsForPath(node.attributes.getNamedItem(@"representedFile").value) まあ、あんま変わんないかな そうとも言えないにはイマイチだったか
777 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 13:47:41.40 ID:qTxWRpQR.net] >>760 同じように改行でもインデントでもなんでもいれれば?
778 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 14:36:01.22 ID:qCAzS5bX.net] Apple様のXcode自動インデントに任せて baz:^ の:の所に合わせてブロック文の中身はインデントを入るよ? ブロック処理がコード上のすごい右側に行ってしまって もうこの美しさと言ったらObjC/Xcode以外では中々に見ることが出来ないレベルだと思ってる
779 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 14:44:47.05 ID:F28KTTfx.net] Apple様とか言ってるのはお前がだぞw 有るものを受け入れるに過ぎない&有るものをいかにどう使うかがお前や俺らのやること。それを使うというのはお前や俺らが自分で決めたことなんだから。それは別にAppleのに限らず なんか自称開発経験長いようだが、よくそんな自分では解決できない不満満々でやってるなあ。その分他に使えばいいのに。全然長いように見えないな
780 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 15:38:18.31 ID:taAceK/L.net] 2個目以降のblocks引数のことだろ 1個目の左側と揃えた方がいいよ
781 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 16:10:59.77 ID:F28KTTfx.net] デフォのフォーマットでは、2個目以降のblocksも引数のblock中身はインデントひとじゃね? いくらあろうが右へ右へとは行かないよな??
782 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 16:22:42.51 ID:taAceK/L.net] インデントは2個目で止まる だけどシグネチャがそもそも長いから右に寄りすぎるってのはある 1個目と同じで問題なさそうなのにね まあ別にいいんだけど気になる点ではあるな
783 名前:デフォルトの名無しさん mailto:sage [2017/08/08(火) 16:29:39.36 ID:F28KTTfx.net] そもそもデフォのフォーマットが気に入らないwから、自動補完後に整形するけど、自動補完中はTab(&click)とReturnで進めばBlockの中身分インデント一つだけのような/だけだけどなあ 2つになる場合がなんかあったかもしれないが補完後に整形するから忘れてるのかもしれないけど
784 名前:デフォルトの名無しさん [2017/08/09(水) 07:47:44.63 ID:EM9uH4Ru.net] >>761 ドットもよくわからんよね [ ]はどのオブジェクトに対して何の呼び出しをかけているかが明確にわかりやすくて個人的にはいいと思うんだけどな
785 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 11:34:46.72 ID:7tAKIt6P.net] 提供された言語仕様をあるがままに受け入れられないヤツはObjCを使うな
786 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 12:55:35.37 ID:a8XvE339.net] 「俺の馴染みのない表記が混ざってるのがキモチワルイ」言われても 評価してる側は「外への働きかけが表記分けで一目瞭然なのがイイネ」だから 話が平行線というか、 むしろ、最近の言語が(swiftみたいに)すぐにどのレベルの処理も フラットにベターッと書くのを指向していて それよく知られてるいつもの【ダメなやつ】なのになんで あれやりたがる開発者多いのか…
787 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 13:23:22.09 ID:qPu9JyaP.net] Obj-Cのラインは行頭に@という手もあるぞ
788 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 13:28:37.05 ID:mzNn5sYF.net] [] はコストが関数呼び出しより高いことを明示してる感じでとても良いと思う。
789 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 14:34:41.41 ID:7tAKIt6P.net] プロパティとかいうドット表記が問題なんだよな, 挙句にgetter/setterのメソッドに紐づいてるし あれをObjCに取り込んだ害悪は誰だったんだろうね
790 名前:デフォルトの名無しさん [2017/08/09(水) 14:53:43.66 ID:ocU/hJiZ.net] >>774 変な日本語! プロパティアクセスに限って、ドット表記ができるってのは、 Objective-Cらしくて良いんじゃ無い。
791 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 15:10:08.58 ID:7tAKIt6P.net] 230デフォルトの名無しさん (ワッチョイ 056c-cJAr)2017/08/09(水) 14:56:18.93ID:ocU/hJiZ0 >>230 Objective-Cでもジェネリクス可能なのか? どのレベルまでできる? 1. 型汎用な関数 2. 型汎用なクラス 3. 型汎用なプロトコル 4. 型汎用なプロトコル・エクステンション SwiftスレでObjCについて聞く前にググれ https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-ID173
792 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 15:10:17.60 ID:qPu9JyaP.net] プロパティじゃなくてもシグネチャ次第でドットにできるけどね
793 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 15:15:27.76 ID:qPu9JyaP.net] あゲッターだけか
794 名前:デフォルトの名無しさん [2017/08/09(水) 15:47:05.07 ID:ocU/hJiZ.net] >>776 Lightweight Generics って書いてあるね。 Swiftから呼べるObjective-Cコードは軽量版ジェネリクスってことか? 軽量版ジェネリクスかぁ。。。なんかグッと来る日本語無いかな? Matzだって名前重要って言ってるし。
795 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 18:10:30.11 ID:m222t+F2.net] >>774 確かそもそもは、Cocoa Binding Cocoa Binding(内で使う/に指定する)で メンバ(のメンバ?) の表記がドット。Cocoa Bindingとして対象は当然「プロパティ」という概念/名称になろう この時点ではObjective-Cには property なんてなく、当然ドットもない。Cocoa Bindingがプロパティとして呼び出すのは単にセッター/ゲッター。セッター/ゲッターを量産する手段をObjective-Cには同時期かまたはちょっと後(それまでは、全部手でセッター/ゲッターを書く) その後いろいろあって、今のに なので、よくわからんが今やり始めてそう思うのは仕方がないのかもしれないが、無茶苦茶言ってるなてとこかなw
796 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 18:46:53.08 ID:P/9b8Th9.net] >>771 その【ダメなやつ】を最近もクラスプロパティの言語仕様追加で従来[ ]で呼び出してたものを.で呼び出すように推進してるからなぁ 言語仕様変えただけじゃなくご丁寧にCocoa, UIKitのフレームワークライブラリの実装まで修正してくれてるし 昔は【ダメなやつ】だったのかもしれんが、今は【イイやつ】になってると思うべきなんじゃねw ObjCの言語仕様が追加されるのはいつものことだし、変わったものをモダンで良いものと思って追い続けないとやってけないよ
797 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 18:55:51.12 ID:P/9b8Th9.net] >>779 なんか誤解してそうだけどObjC単体でも使えるからな ListやDictionaryなんかの一部コレクション系クラスの保持オブジェクトの型をコンパイル時チェックできるようになった Java5の頃のジェネリクスと同じ感じだな, C++のTemplateみたいな使い方はできないがまぁ仕方あるまい 軽量"版"というからしょぼく見えるんだから軽量ジェネリクスでいいじゃん コンパイル時間は多少伸びてるだろうが、実行時オーバーヘッドは0のはずだからな
798 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 19:35:58.41 ID:eNfr2UIc.net] >>780 まあドット表記自体は構造体のメンバアクセスとしてC(=Objective-C)に備わってるけどな それをオブジェクトに対してあえて適用しなかったのがObjective-C
799 名前:デフォルトの名無しさん mailto:sag
[] [ここ壊れてます]
800 名前:e mailto:2017/08/09(水) 20:09:54.22 ID:EM9uH4Ru.net [ >>783 正確にはC(∈Objective-C)だけどな まああえて=って書いたのかもしれんが ] [ここ壊れてます]
801 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 20:20:14.93 ID:m222t+F2.net] >>783 あえてというか、必要性が無かったからだろう Cocoa BindingでGetter/Setterをたくさん用意しなくてはならない/するのを強制されるのは確か。そういえばGetter/Setterの命名規則もこれのせいだったような(それ以前にあったかもしれないが「でなければならない」ではなかった) オブジェクトに対しては、 ClassA *obj = … (*obj).instaceVariable = …; として、(たぶん)最初からあるけどなww(Cの構造体メンバアクセスとは確か「ちょっと」違う) 最初は構造体のと同じ表記なのに単なるメソッド呼び出しの置き換えとかキモかったなw
802 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 20:31:19.14 ID:m222t+F2.net] >>785 >それ以前にあったかもしれないが「でなければならない」ではなかった ちょっと違うな それ以前にあったかもしれないがルールが明文化された かな。ルールに基づかないのにもなのがsetter=/getter=の存在でもあるし
803 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 20:49:27.68 ID:qqV2xE2N.net] >>785 obj->instaceVariable = …; とするとどこぞの言語っぽくもなるなw
804 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 20:57:44.83 ID:P/9b8Th9.net] > オブジェクトに対しては、 > ClassA *obj = … > (*obj).instaceVariable = …; > として、(たぶん)最初からあるけどなww 最初からはねーよwww ギリギリ->オペレータがあったくらいだわ まぁその当時はC/C++を継承した->は【ダメなやつ】で[ ]のみが正義だったわけだが
805 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 20:59:19.88 ID:m222t+F2.net] >>787 それは「たぶん」でなくて「確かに」だろう そっちの書き方が普通で>>785 の書き方する方はちょっと捻くれ者かなww NSCopying実装するのに普通にそれをだったが、今時はsetter/getterやpropertyのがかな?まあ、setter/getterやpropertyを用意するまでもないインスタンス変数なんて普通にあるから、今でもだろうけど
806 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 21:01:34.46 ID:m222t+F2.net] >>788 なるほど。使おうとしたことあるのか?w なんか下みたらそんな気配は無さそうだが、まあ、俺は試したことは無いので、いう通りなんだろう。どうも
807 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 21:03:58.20 ID:qPu9JyaP.net] (*obj).foo も obj->foo も@publicじゃなきゃならんな Cの構造体の構文に似せてあるが、シュガーだよ
808 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 21:15:38.13 ID:m222t+F2.net] >>791 うん。まあ、単なる目に見えるメソッド置き換えよりも、なんか気分的な親和性があったというか NSObjectの構造を見るとアクセスするのに単純にいかなさそうなんだけど、今はなんか簡単にやってやがるっぽくない?よく調べてないがコンパイルで吐くコードがなんか単純(以前のでの吐くコードがどんなんか知らんけど) struct objc_class が OBJC2_UNAVAILABLE だから、Objective-C 2.0 で何か思いきったことやってんのかなあ?
809 名前:デフォルトの名無しさん mailto:sage [2017/08/09(水) 21:51:51.46 ID:m222t+F2.net] >>788 稼働可能状態な古いMac持ってる知り合いに聞いて試してもらったら、10.4では (*). はコンパイル&ランで問題ないって 10.0 から 10.3 の間かなあ?そんな別に無くてもいいもんwいつサポートするようになったか興味がちょっとあるなw(いつの話か教えてくれたら嬉しいな)
810 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 07:30:10.75 ID:qaUJfGjG.net] objective-c property のアクセス制限で相談です。 外部へはreadonlyプロパティとして公開し、内部向けにclass extentionにてreadwriteプロパティとして再定義したクラスがあります。 これを、swiftで使おうとしたところ、generated headerの中にこのプロパティ定義が作られない事に気付きました。(xcode 8.3.3) 多重定義を止めると、普通にプロパティ定義が作られます。 多重定義プロパティでのgenerated header不具合っぽいのですが、良い対処方法を教えてください。 思いつくのは ・Immutable classのサブクラスとしてmutable classを作り、そこでプロパティを再定義 ・readwriteのpropertyを別名でclass extentionで定義しインスタンス変数を共有、内部からはwrなプロパティを使う くらいです。
811 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 12:13:53.23 ID:dKEWL6WP.net] こういうこと? Hello.h -- @interface Hello : NSObject @property (readonly) int i; @end Hello+ReadWrite.h -- #import "Hello.h" @interface Hello() @property (readwrite) int i; @end ObjCでもSwiftでもHello+ReadWrite.hをimportしてればrwプロパティとしてアクセスできてる(Xcode8.3.3/High Sierra) Hello.hをimportしてrwプロパティを持つgenerated headerにならないのは不具合ではなく仕様通りではないかと
812 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 12:32:23.62 ID:qaUJfGjG.net] いえ、公開したいのは、readonlyなプロパティなので、上記例で言えばHello.hの方です。 その場合、プロパティ自体が存在しない空のgenerated headerになってしまいました。 Foobar.h @interface Foobar: NSObject @property (readonly) uint32_t count @end Foobar+internal.h @interface Foobar () @property (readwrite) uint32_t count @end Foobar.m #import "Foobar.h" @implementation Foobar @end
813 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 13:46:56.49 ID:dKEWL6WP.net] 同一プロジェクト内で双方向のpublic getter, private setterはこんな感じでいけた ttps://pastebin.com/2ckH2LeE ライブラリプロジェクトでプロジェクトを跨る時はObjC側はBuild Phrases -> HeadersでHello.hをpublic設定して Swift側は@objc public class HelloSwiftで宣言するんだったかな, @objc publicは最新で不要になってる気もする 多分、ライブラリプロジェクトについて話してるんではないだろうから、ここは意識する必要ないだろうけど プリミティブ型じゃない時に何か特殊な障害があったかな・・・
814 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 14:18:44.04 ID:2Yw2XYfL.net] 372仕様書無しさん2017/08/11(金) 10:31:43.41 フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。 高額に見せているけど実際は50万前後 JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。 ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト 473非決定性名無しさん2017/08/03(木) 15:21:30.71 JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる 自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の 間でやらしている。 446非決定性名無しさん2017/08/02(水) 22:12:48.95 JIETに毎月5千円払えば3次から入場できるだろ? 高額をうたうフリーランスのサイトはだいたい5次から45万円 JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした 高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした 自称エージェントはJIETから流れてくる案件を転売してるだけだった。 JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
815 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:21:17.11 ID:3WtgEz9W.net] その方法でまんま何も問題ないけど? Swift側で、入力補完でプロパティ出てくるし、参照に問題なく代入で cannot assign to property: 'count' is a get-only property ってエラー出るし generated headerってなんじゃらほいだが。SwiftでFoobar.countの定義参照(Command+Click)してもFoobar.hのそれまんまがだし Swift -> Objective-C が Generated Header(SwiftソースからObjective-Cのヘッダーをじぇねれーと)じゃないのかな??Objective-C -> Swift はBridge Header (なにかしているんだろうが、単なる参照用)
816 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:26:34.38 ID:3WtgEz9W.net] >>799 は>>796 宛て >>797 すでにレスってたのね、失礼。ほぼ、同じどす
817 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:37:26.13 ID:qaUJfGjG.net] >>797 ,799 コメントありがとうございます。指摘通り、Generated interfaceの誤りですね。 今手元でこんな感じです。 ttp://i.imgur.com/D8CWZTP.jpg 上がCocoaアプリ、下がFrameworkに置いたものです。 いずれも、Generated I/Fの中に上書きしたプロパティが出てきません。 Xcode再インストールが先でしょうか?
818 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:52:20.34 ID:3WtgEz9W.net] >>801 絵が見えないー。何をやってるのか見えなーい んー… Swiftで作ったクラスをObjective-CでがGenerateだと思うんだがな。HeaderとInterfaceの違いではなく…まあ、どうでもいいけど、Objective-Cで作ったクラスをSwiftででいいのね? 何やってるのか見えないのでなんともだが、とりあえず Product メニューの Clean(よりも、Option押しながらのClean Build Folder…)かな
819 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:57:11.27 ID:qaUJfGjG.net] ttp://light.dotup.org/uploda/light.dotup.org471442.png.html すみません貼り直します。 Obj-c => Swift が目標です。
820 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 16:09:41.21 ID:3WtgEz9W.net] >>803 ん??右端の Hello.h が generated header/Generated interface とやら?んなのいらんだろ?? 単に、Bridge Header に、その左隣の Objective-C 用の Hello.c をインポートすればいいだけだろ??>>797 さんのでいえば30から31行目、Hello-Bridging-Header.hというファイルに#import "Hello.h"を一行 Bridge Headerを使うようには設定でだが、Objective-Cのプロジェクトで最初にSwiftファイル作れば、「Bridge Headerつくるよ」とXcodeが勝手にやってくれるし、その後設定を確認してみればBridge Headerを使う設定がわかるだろう
821 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 16:13:00.14 ID:3WtgEz9W.net] >>804 >勝手にやってくれる Bridge Headerファイルの作成と、プロジェクトへのBridge Headerファイル登録と、ビルド設定ね Swiftで使うクラスは、Bridge Headerに自分で記述する(単に#import "….h")
822 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 16:22:45.31 ID:3WtgEz9W.net] >>804 すまん。ちょこちょこ間違えた >その左隣の Objective-C 用の Hello.c その左隣の Objective-C 用の Hello.h >でいえば30から31行目 でいえば30から32行目
823 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 20:56:39.29 ID:3WtgEz9W.net] >>803 そういえば、(標準の)Frameworkは?ってのは、umbrella headerってのをFrameworkに仕込むらしい それも、ヘッダーはそんなSwiftみたいなのではなく、単にObjective-Cのヘッダー(をSwift
824 名前:用にプリコンパイル(?)してモジュール化しての) すると、Swiftで import Foobar ってだけで [] [ここ壊れてます]
825 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 21:33:48.50 ID:3WtgEz9W.net] >>807 ああ、umbrella headerって、Objective-Cでも/でのModulesのためのか。@importの。@importなんて忘れてたw それの使用/流用か?@importはSwiftより1年先みたいだし
826 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 21:37:17.32 ID:vLIuNhx/.net] 流用っていうかLLVMの機能
827 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 11:30:09.68 ID:TkYKFb/H.net] 解決できてなさそうだから一式上げた ttps://www.dropbox.com/s/dycv00sv7gc9c9a/Hello.zip?dl=0 Swift PJをベースに作ったけど、ObjC PJベースで作っても同じ感じ Hello-Bridging-Header.h を適切に作成、参照させてないのが原因とエスパーしとく 参照設定はXcodeで Hello -> Build Settings -> Swift Compiler - General -> Objective-C Bridging Header の所な
828 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 14:47:06.11 ID:XQniorI3.net] アンブレラヘッダって、Cでよくやる各モジュールのヘッダをincludeしてまとめてあるヘッダのこと
829 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 16:13:58.67 ID:OaUgUnZt.net] iOSでアンブレラヘッダって出来るんだっけ
830 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 16:17:13.40 ID:XQniorI3.net] できるよ .h作って必要なヘッダを#import
831 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 16:32:48.83 ID:OaUgUnZt.net] Accelerate.frameworkを見ると出来るみたいね >>813 サンクス
832 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 17:27:14.87 ID:GzzlNSce.net] >>813 ごめん、アンブレラヘッダとアンブレラフレームワークと混同してた。frameworkも出来るみたい。
833 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 19:08:50.09 ID:3CTOgVkL.net] 皆さんありがとうございます。 どうにもドツボにはまっているので、頂いたものを勉強し直します。
834 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 09:43:22.83 ID:thVvZo3p.net] Xcodeのメジャーバージョンアップに合わせた言語仕様更新 ここ2年くらいないけどもうObjCの改善はやめたのかな
835 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 14:31:13.31 ID:VdDjZJhL.net] Xcode 8からクラスプロパティが入った。 Xcode 9はわからん。 仕様変更は正直いらないよ。新機能の追加だけで十分。 最近のObjective-Cの良いところは仕様変更が少ないことだと思う。 Swiftは変更しすぎでついていけない。
836 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 16:55:31.83 ID:thVvZo3p.net] そうか、クラスプロパティが去年だったか, 地味だから忘れてた Xcode9は今出てるリリースノートの範疇を見るになさそうなんだよねぇ 最近のObjC下位互換破棄はGCの完全撤廃がXcode8であったような?誰も使ってないだろうけども ObjCはシンタックスシュガー多いけど基本は残していくスタンスよな
837 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 18:53:05.49 ID:OtY774nI.net] >>818 ころころ仕様が変わったら何のデバッグしてるのかわからんからね
838 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 12:33:49.66 ID:ELOqa+z/.net] Xcode9では言語仕様追加はないのか 毎年何らか追加してきてたし、ネタ切れってわけでもないだろうに、Swiftにリソース食われてるのかねぇ Swiftはコミュニティにぶん投げて、AppleはObjCの言語仕様をアップデートしてくれよなぁ
839 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 16:41:09.38 ID:DmRL1EOk.net] nullability にしろ generics にしろ、最近の変更は swift から obj-c を使いやすくするのに必要なものだったから、もうやることはあまり残ってなさそう
840 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 09:02:41.01 ID:YXmfUhFy.net] autoキーワードのデフォルト有効化はよ ObjC++(.mm)にすれば良いんだけどなんか違う、idをautoの代わりに使うのはもっと違う
841 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 10:47:18.17 ID:B8cKPTM5.net] C++17も出るし、C++14, 17の新規機能のポーティングが始まるんじゃね?
842 名前:。年はもう間に合わんだろうけど clangとしてC++17は進めてるんだろうから、いつものように文法糖衣してObjCに突っ込むだろ [] [ここ壊れてます]
843 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 11:18:48.86 ID:ZEZMvH77.net] いっそのことObjective-C++使おうかな。 C++の仕様を部分的にポーティングしてくれるならそれもいいけど。 @autoみたいな記法は流石に勘弁だけど。
844 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 12:05:12.13 ID:pDFuyP/L.net] ObjC++はコンパイル遅い。
845 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 17:48:15.95 ID:Ev7WXpGx.net] ObjC++だとリファクタリング効かないから大変。 あれ何とかならないかなぁ。
846 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 18:21:04.93 ID:5JXRZXNo.net] C++はコンパイル速度より実行時速度に重きを置いてるから仕方ないね ObjC++でTemplateが使えたら幸せなんだけどなぁ 常時Dynamic Dispatchで実行速度が遅いObjC環境でTemplate使った速度改善なんて滑稽な話ではあるが
847 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 22:21:55.44 ID:5GGRc0ni.net] >実行速度が遅い それが問題になるほどの崇高なプログラムを組んでらっしゃるのかな
848 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 22:30:27.59 ID:shKG9pre.net] そういう人はいくらでもいるでしょ
849 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 22:34:33.64 ID:zaPu8SCI.net] 計算物理学とか処理速度は常に足を引っ張ってくるからね
850 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 22:44:52.87 ID:pDFuyP/L.net] ObjC++ってC++で書かれたコア部分をラッピングするための装置。
851 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 23:03:50.42 ID:5BLkbp3y.net] > ObjC++はコンパイル遅い。 これが問題になる人よりは多いでしょ, コンパイル速度より実行速度を気するわな ObjC++はC++の機能を使うための装置でもあるがな auto以外にもモダンな機能が使えるからModern Objective-Cがモダンじゃないと感じ始めたら使うのも一興 性能良くてモダンな機能が使えるObjC++はイイゾー
852 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 23:45:22.97 ID:ZEZMvH77.net] コンパイル遅くなるって具体的にどんなケースなの? 既存のobjcソースをobjc++としてコンパイルする程度ならほとんど変わらなそうだけど。 autoやメンバー関数なんかの簡単な機能使う程度なら十分お釣りが来る気がする。
853 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 10:48:43.59 ID:u5MjsaOO.net] モダン、モダンうるせーよw モダンであることが目的になってねーか?おまえら
854 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 12:06:13.00 ID:qBo532qK.net] ものによっちゃあクラシックよりは良いだろうな
855 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 18:57:24.45 ID:AHW4eZK5.net] >>834 - (instancetype) init { self = [super init]; // メソッドcountがNSIntegerを返すと誤認して利用 // NSInteger a = [self count]; // 型推論なし:ここでビルドエラー auto a = [self count]; /* 100行くらいの処理 */ a = a + 1; // 型推論あり:ここでビルドエラー return self; } - (NSNumber *) count { return @0; } こんな感じのマヌケなコード書いてると 100行くらいの無駄なコンパイル処理を経てようやくビルドエラーが出るので autoキーワード(型推論)を使うObjC++はビルド時間が遅い ・・・という型推論否定論があるんだろうと最近は思うようにしてる なお、auto a = [self count];とNSNumber *a = [self count];だけを比較したら 型推論使った方が両辺の型一致を判定する必要ない分だけ早くなり得ると思う
856 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 19:14:40.76 ID:Qzt2A3g3.net] マヌケっぽいけどイ`
857 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 20:19:08.25 ID:GaaWhR7c.net] C++の型推論は戻り値型が確定していればその場でNSNumber *に置き換えてくれるんじゃね? よほど変なコード書かない限りコンパイル速度が問題になることは無いだろう。 Xcodeはデフォルトでプリコンパイルしてくれるし、C++でもやってくれるでしょ。
858 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 20:20:06.63 ID:GaaWhR7c.net] 型推論にかぎらず
859 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 00:53:58.51 ID:JKJOfy4O.net] ObjC++がコンパイル遅いって具体例、他にないのかね 一例は捻り出してみたけど、遅いと主張してる人たちからは何も出てこない...
860 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 01:11:16.27 ID:9h/7te1O.net] 遅さが実感できないならそれで良いんじゃね
861 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 06:26:53.84 ID:PmP+sl68.net] >>826 はObjC信者の妄言ではないと実証しないとダメじゃない?
862 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 13:34:45.75 ID:Fbd5ldy5.net] 真の信者はObjC++も受け入れる。 実際ObjC++はそれほど遅くはないよ。 今はClangコンパイラがデフォルトになってるからかなり早い。 むしろSwiftのほうが遅く感じる。
863 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 22:19:53.34 ID:CWg4/G2u.net] 今は亡き真のApple信者はObjCは素晴らしい、Swiftも素晴らしい Appleの提供するものは全て素晴らしいってSwiftスレで孤軍奮闘してたよ(Swift1.xの時代 Swiftはcopying swift libraryにクッソ時間かかるから論外だと思う, 10Mbyteの小さな()ランタイムのコピーは失笑しか出ない それはそれとして、いい加減ObjCのみが素晴らしいって主張のObjC信者はObjC++が遅いって実証を出せゴルァ ObjC++を許容する真の信者(笑)の根拠のない感想なんてどうでもいいんだよ
864 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 23:15:55.98 ID:Jq7SE38L.net] 信者信者ってわざと言ってるのにはもう見えないな。マジで言ってるのならキチだな
865 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 17:08:25.60 ID:SQ4/Zkph.net] >>845 はどう見ても基地外だろう。
866 名前:デフォルトの名無しさん [2017/09/07(木) 08:58:40.01 ID:Omz9mDs1.net] 触ると増える
867 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 07:44:30.62 ID:Wi5IEwLQ.net] >>845 が粘着であることと、>>826 が妄言であることは矛盾しないけどな のらりくらり論点変えて実証しなくて済むよう頑張ってたようだけど、遂に人格批判切り替えたか ObjCと関係なく信仰/感情で批判できる人格批判は楽で良いよね
868 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 11:02:58.01 ID:ouBjF6hv.net] もう信者ネタは飽きた。 ところでObjC++ってObjCには満足出来ないけどSwiftに移行するほどでもないっていう人には良い言語だよな。
869 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 11:39:16.63 ID:0ohCbX1Y.net] 主に感情を揺さぶることが目的でしかない信者信仰とか無くてもいいもん言い出してるのを無視して何を言っているのか、マジなのか馬鹿すぎキチガイすぎでという点ではな Objective-Cでも満足できるけどC++も使わなければならないので良い言語だなあ 上の方でラッパーするには的なことあるけど、わざわざラッパーを作らずにちゃんぽんでで
870 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 17:15:02.30 ID:E/p7ocd2.net] その時間から酒飲んでるのか。プレミアムフライデーうらやましい。
871 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 07:29:36.83 ID:4vXDR/AT.net] 具体的にc++を使うとobjcはどんな風に楽になるのか解説頼む。 swiftの言語仕様の破壊的変更には辟易するけど。
872 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 07:33:07.60 ID:LN4nKJDq.net] 楽になるもなにもobjective-CとC++はCの拡張方向が違うから 単純にC++の文法をObjective-C++でプロジェクト作るとそのまま食うってだけだぞ。
873 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 19:33:30.38 ID:8E3FMuHj.net] >>853 型推論が使えるので長い型名を扱わなくて済むようになるって言ってるダルルォ 引き続きObjC信者はObjC++のコンパイルが遅い具体例を、真の信者はObjC++の良い所の具体例を頼む
874 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 19:35:50.45 ID:2PbJjEWF.net] 型推論ってBASICかよ。。
875 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 07:43:48.22 ID:jzTwYGLB.net] ObjC++についてObjC信者連呼してる君、かなり深刻なお脳の病気を持ってそうだな。
876 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 07:58:49.2
] [ここ壊れてます]
877 名前:4 ID:mLTl9fJv.net mailto: 右辺値の型を左辺の変数の型にする機能はModulaの昔からあるんだけど、そんなものは型推論とは呼ばれてなかった 型推論というのは一般にMLにある型変数が飛び交うようなのを指すもので、C++でいえばtemplateのパラメータが相当する autoを型推論と呼ばないで欲しい。C++が用語を歪めたのが悪いんだけど あとBASICにはどっちの意味でも型推論は無いぞ、バリアント型の間違いじゃね [] [ここ壊れてます]
878 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 09:07:15.21 ID:xTzJbttv.net] >>858 メーリングリストが何だって?
879 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 09:43:03.26 ID:6eMl9Cue.net] >>858 ドヤ顔で解説してるが、お前の中での型推論の定義と、現代世間一般の型推論の定義がズレてる 同じ理由でBASICの動的型のことを型推論と呼ぶ定義もあるだろうよ
880 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 09:53:31.64 ID:mLTl9fJv.net] >>860 >同じ理由でBASICの動的型のことを型推論と呼ぶ定義もあるだろうよ ぜひそれを人前で発言してみて欲しい
881 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 10:57:19.42 ID:EO9qqnso.net] 前に言ったかもしれないけどObjC++のコンパイル速度はそんな遅くないよ。 c++で遅くなるような処理をobjc++で書けばそれりゃ遅くなるけど。 DSL作るとかじゃなければ気にならない。 objc++のプロジェクト書いてるけど、ビルド&リンク時間は1秒くらい。 同じ規模のswiftのプロジェクトが3秒だから相当速い。
882 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 11:31:14.81 ID:w1siUvvP.net] できればobj-c++の有用例をqiita辺りに纏めてくれないかな。 需要はあると思うんで。 言葉で語られてもピンとこない。実際のコードで示して欲しい。
883 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 13:07:44.32 ID:EO9qqnso.net] ググれば足りる 「Objective-C++11 - 星一のはてなブログ」 「Objective-C++でSwiftに挑む」 あと「SwiftのそれObjective-Cで出来るよ」って記事、前にあった気がすんだけどあれ何処いったんだ?
884 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 15:23:22.28 ID:ODr7u6re.net] >>864 ありがとう。見てみたけど簡単に使えそうなのはauto変数を使った型推論くらいな気がする。 あんまり便利感がない。
885 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 15:28:06.27 ID:YhxCzOtN.net] 型推論できないと効率が下がるプログラマー
886 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 19:50:23.81 ID:w1siUvvP.net] >>864 結局どっちも本格的に使うって雰囲気じゃない書味。 結局swift使うわってなってないか。
887 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 20:02:20.98 ID:xTzJbttv.net] Swift使えっていう布教活動なら納得
888 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 21:34:33.40 ID:UkktAReA.net] BASICは成り立ちというか設計者の話を聞く限り 「FORTRNとかでプログラム教える時に"型"でつまずくから 「数字」と「文字」という二つの分類にしました。 いやぁ、for~next step 0.5とか想定回数回すようにするの大変でしたよ、ハッハッハ」で 最近の"型推論"でごちゃごちゃ問題起きてるの眺めるたびに ほんとこの世界は過去から学ばねぇなと思ってる。
889 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 23:48:48.08 ID:3pmx1gWM.net] Swiftでいいわ じゃあの
890 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 03:08:54.09 ID:+NzND3PL.net] >>870 バイバーイ
891 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 07:27:55.45 ID:RCvV23l8.net] >>869 alloc/freeで任意契機のメモリ管理ができない他言語はクソ => GC/ARCスゲー メッセージ表記こそ至上の文法、ドット表記はクソ => プロパティドットアクセス便利 クロージャーは見通しが悪くなる、クロージャーはクソ => Blocksイイ 手のひらクルンクルンについて、過去から学ばないObjCがそれを言ってもなw 型推論も将来採用されたらまたクルンって手首回すと信じてる
892 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 07:44:04.15 ID:lJyYCV3D.net] ObjC++とARCで質問です。 ググッた限り良い解説に辿りつけないので教えてください。 c++classにObjectiveC++クラスの参照を持たせた形で、循環参照と思われる現象に引っかかりました。 c++クラスのコンストラクタで、ObjC++のインスタンス変数を代入させています。 c++クラス側にObjC/ObjC++のインスタンスを持たせるばあい、c++ソース側でもweakとかunsafe_unretainedとかは指定して良いのでしょうか。それとも、コンストラクタ呼び出し側で、weakselfなどを代入するしかないのでしょうか。
893 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 12:15:52.29 ID:Hnapc1Bn.net] >>872 「GCスゲー」「クロージャーはクソ」なんて意見は聞いたことないけどな
894 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 13:17:49.09 ID:D+TVdXvf.net] >>873 普通には問題なさげ 何も問題なくコンパイルする __strong付きのはちゃんとC++クラスのデストラクタで勝手にリリースしてくれる。伴い、それの他でのweakはnilにしてくれる __weak付きのは元が消失するとnilになる。消失するのがObjective-Cのクラス側だろうがなんだろうが __unsafe_unretainedはそもそもARCでは何もしないだし、C++クラス内でもなにもしない clang.llvm.org/docs/AutomaticReferenceCounting.html には、(C/)C++での注釈はチラホラあるけど Objective-C++使うのはObjective-CでC++のを使いたい場合で、そんな使い方してないからなんか混みいった場合があるのかよくわからんけど
895 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:49:37.25 ID:cOq2BguT.net] iOS11でObjective-Cアプリってどれくらいメンテ/評価工数かけた? こんなレスあったけど、まさか評価0って企業はないよな? 296デフォルトの名無しさん (ワッチョイ 23ea-5RgV)2017/09/28(木) 15:24:26.46ID:n5Lt93Y/0 Objective-Cで書いときゃメンテフリーだったのに
896 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:01:59.92 ID:9C7BOStD.net] Swiftでの開発時に比べたらほぼないようなものっていうニュアンスで捉えたが
897 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 10:22:28.62 ID:YdXqj+6X.net] CもObjCもここ数年は仕様変更がないから、コンパイルはそのまま通る。 変なコード書いてなければ動作確認も問題なくパスする。 メンテナンスフリーって言われれば確かにそうかもな。 あとはフレームワークで非推奨にになったメソッド書き換える程度だけど、 これはSwiftと共通の作業だし、そもそもやらなくても動く。 とにかくSwift移行していない俺は毎年高みの見物してる。
898 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 13:46:22.66 ID:1qiEqY9+.net] deprecatedになってから猶予が結構あるから早めに変えとけばコアコードの変更なんてほとんどないな あるとしたらレイアウトとかの修正くらい 依存してた関数が消えたり仕様が変わってどうしようもなくなった場合はそもそもなにもしようがない
899 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 19:22:37.66 ID:31qHkzGo.net] 結局Swiftに移行するメリットがObjective-Cを継続しようするメリットを超えてこない
900 名前:デフォルトの名無しさん mailto:sage [2017/09/30(土) 00:38:42.96 ID:FQgRLXZE.net] そもそもObjective-C使いこなしてたような人がSwiftに移行するメリットなんてないしな。 Swift界隈はちょくちょくウォッチしてるんたけど、移行しないで正解だったって日に日に実感する。
901 名前:デフォルトの名無しさん mailto:sage [2017/09/30(土) 02:21:57.64 ID:SqIOY632.net] >>878 ObjCもiOSも扱ってないやつの論だなw 近年も言語仕様追加されてるし、メジャーバージョンアップの評価はしないと動かないこと多数だし ObjC, iOSを扱ってなきゃそりゃ高みの見物で終わるだろうよ 結局はメンテフリーじゃないのに極論を振りかざすObjC信者がSwiftスレに来ただけか あの手のアホの子はiOS
902 名前:, ObjCを扱ってるのか不安になるよねぇ [] [ここ壊れてます]
903 名前:デフォルトの名無しさん mailto:sage [2017/09/30(土) 02:30:28.41 ID:SqIOY632.net] Swiftは移行するもんじゃなくて、ちょっとかじってApple信者を騙して儲けるモノだったろ 当時はまだジョブズ存命でSwift使う信者もいたから良い商売になった, Swift使ってますで案件大量だった Apple信者が死滅した昨今、Swift使ってますでは案件取れなくなったから、皆ObjCに戻って来てるよな
904 名前:デフォルトの名無しさん mailto:sage [2017/09/30(土) 02:32:56.94 ID:yPwVPo43.net] てかSwiftで作られたApple純正アプリってあるの? そんなに優れてるならAppleが率先して移行するでしょ そういう事
905 名前:デフォルトの名無しさん mailto:sage [2017/09/30(土) 02:40:56.76 ID:EVMVqVHi.net] なんかキチすぎてまとに相手する気にもならないが、 Swift 登場時期 2014年6月2日 ジョブズ 1955年2月24日 - 2011年10月5日 らしいよ >>884 まあ、WWDCでのサンプル提示はSwiftオンリーになったような。全部というか一部しか見てないが。サンプルコードもSwiftもぽちぽちあるな どうなんだろな。さすがにAppleもSwiftの変更にははあるかな??まあ、Swiftで作られたApple純正アプリがあっても不思議ではない。探してみようw
906 名前:デフォルトの名無しさん mailto:sage [2017/09/30(土) 07:09:22.48 ID:0pTRGub9.net] Swift書くの楽だわ さっさと移行してよかった
907 名前:デフォルトの名無しさん mailto:sage [2017/09/30(土) 08:05:24.29 ID:uRHGHo1a.net] >>886 そうですか では引き続きモダンな言語Swiftをお使い下さい そしてSwiftスレにお帰り下さいませ
908 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 07:15:02.28 ID:hNuicHmO.net] Apple純正アプリってクローズドソースで探せないだろ どうやって探すつもりなんだ
909 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 08:05:02.62 ID:U1G3k+aG.net] >>888 アンカーつけなよ
910 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 08:33:50.58 ID:xjQetnPj.net] バイナリからもそれなりにわかる。まあ、それなりにだが とりあえず、SierraではConsole.appがSwiftで書かれている部分はあるみたい。Objective-Cとの混合っぽいし、SwiftとObjective-Cの割合まではまだ推測してないが
911 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 09:34:49.05 ID:xjQetnPj.net] Console.appはSwiftで作られたと言ってもいいかも。AppDelegateやControllerなんぞメインな部分がSwiftでのクラス(ってことで合ってると思う) まあ、Utilities内ではConsole.appぐらい/だけなんだがw
912 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 09:51:32.67 ID:/IPTP4VW.net] そういえばコンソールは使いづらくなったよな 左下のプロセスでの抽出出来なくなって アイコン表示もなくなって やり方が変わったならすまんが 毎回作り替えてんのか使い易くなったり悪くなったり安定しないイメージ
913 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 10:15:13.14 ID:xjQetnPj.net] Pagesなんて、Objective-C++のようだなあ。Objective-C++好きにとってはなんか嬉しいw
914 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 10:47:32.34 ID:R3DqYdgN.net] Dock.appもSwift製ってどっかでみた
915 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 11:17:21.49 ID:xjQetnPj.net] あー、そういうアプリもあるか Dock.appはガチすぎて(イミフ)明確な手がかりが掴めないなあ。Swift使ってるようだけど。てか、C(Core)をかなーり使ってるっぽい。わからんなw よりも、NotificationCenter.app がSwift製っぽい。確実にかなーりSwiftで書いてるかな とは、別にPangesといいNotificationCenterといいAppleもやらかしてる(ナゾ)んだなと思ったw まあ、厨二くさいのでもうこのへんでw
916 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 12:41:15.86 ID:hNuicHmO.net] Swiftを使っているかどうかはlibSwift.soにリンクしているかどうかですぐに分かるけど Swiftだけを使っているかどうかはObjC, Swiftのバイナリコードは類似するんだから分からんだろ それなりにわかるじゃ意味なくて厳密に分からないと無意味な話だろうに
917 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 12:44:39.82 ID:qGSPhC6b.net] そもそもわかることで何かいいことがあるのかっていうね
918 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 13:49:46.99 ID:hNuicHmO.net] 分からないことを示すことで、>>885 の「探してみようw」のキチっぷりが証明される 分かることに意味はないけど、分からないことには意味があったんよ 逆に、分かることを証明できれば、おいらがキチと証明できるから頑張っても良いんじゃね
919 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 19:21:32.85 ID:xjQetnPj.net] なんか引き出そうと透けて見える気がするのが嫌w お前は強く言われたら反発して言うタイプ?なんで、素直に教えてと言えないかなあw気分悪いのでもう具体的には教えてやんないけどw > libSwift.soにリンクしているかどうかですぐに分かるけど 言う通り。でもリンク項目にしてるだけで使ってなくてもあったりするけど、確か(まあ、そんなアホなことしてないだろう) >Swiftだけを使っているかどうかはObjC, Swiftのバイナリコードは類似するんだから分からんだろ 言う通り。だから>>890 でそのように言ってるやん。の後にこれはSwiftで作られたと言ってもいいかも(ちゃんとそれでも「かも」)と根拠言ってるやん。根拠探してみ単純なことだから(Pagesはこの単純なことで見えたある意味アホらしいことから) >>895 も、Swift製っ「ぽい」だからね。根拠も書いてるでしょ >>897 俺は別にないよ。>>884 の「Apple純正アプリってあるの?」っていうのに、どうだろうという興味と、>>890 っていうのに全くわからないこともないんじゃねっていう実証だな(具体的に言わんから実証にならんとか言うなよww) 知ってるお人にはなにをもったいつけてんだと思うだろうな。俺もそう思うww
920 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 19:26:51.07 ID:xjQetnPj.net] あー、>>888 の人か。なんだw たんに噛み付いた(?)のに、否定されてのでか...?気にすんな。なおさら教えないけどww
921 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 20:14:20.03 ID:0JlsHB3I.net] 急に発狂しだしてどうした。実世界で嫌な事でもあったのか?
922 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 20:26:37.49 ID:xjQetnPj.net] なんですぐに発狂とか...わからん。まさか、長文書くとか、レス多いとか?だったり?まさかなww 別に嫌なことはない、今暇ってだけだな
923 名前:デフォルトの名無しさん mailto:sage [2017/10/01(日) 23:06:01.97 ID:IvPlqNt/.net] どっちで書いても良いけどさ 純正アプリのグダグダは直ったのかい?
924 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 10:34:40.67 ID:o9ncCo8n.net] 急に長文で笑いつつ読み飛ばした後 日本語がおかしい>>900 があって発狂してるんだなって思った。 >>903 ObjCに関係ないけど純正アプリのSafari for macOSは良く出来てると思ってる ChromeやFirefoxよりバッテリー消費少なくてノートで非常に助かる Chromeのバッテリー持ちの悪さはなんなんだろうね, 2倍とまでは行かないけど体感できるレベルで差が出る
925 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 16:39:06.49 ID:Wwkr3eYe.net] 急に長文もなんも、俺には>>895 ,896が急にというか何もわかってねーなそのくせにだから、スカしながらの説明をにしたら長くなるっていう。もったいつけてるというのはそゆこと >>900 は>>895 ,896だけ見てたけど、>>888 の発端のヤツかよ完全否定から入って何も読まずにまだ否定だけかよっていうことだよ 長文とか日本語がおかしいとかいいつつ、読むんだなwそんなの読まなきゃいいのに、読めないんだったら(別に読めなくてもいいよ。そこは責めてない。読めないくせに勝手に決めつけんな、めんどくさい) な?わかってないのに説明すると長くなるだろ?お前もお仕事上わかると思うけどw
926 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 16:46:18.34 ID:Wwkr3eYe.net] × >>895 ,896 ⚪︎ >>896 ,898
927 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 20:32:33.93 ID:0liCQr5x.net] とりあえず落ち着こ
928 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 20:48:09.76 ID:d/DK+qf4.net] とりあえずおちんこ
929 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 21:25:04.04 ID:nKRU0XTa.net] はあぁ…
930 名前:。 [] [ここ壊れてます]
931 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 08:08:33.18 ID:ekjB4cHk.net] よし、落ち着いて発狂から解放されて正気に戻ったら>>905 を正しい日本語で書き直そう
932 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 08:19:44.81 ID:V7FXDajl.net] プログラミングの話しようよ
933 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 11:04:44.04 ID:e2PGw4tF.net] ここも次ワッチョイ推奨
934 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 11:18:57.67 ID:Gppgeajp.net] Xcode 9の話しようぜ!
935 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 17:55:40.67 ID:M+fUbMNH.net] Command+Clickが地味に使いづらい、ウザい 俺はあんなハイライトいらん。そんな一目で「終わり」を見る機会より定義の場所にジャーンプの機会の方が圧倒的なので 邪魔なポップアップ出さずにジャンプの指定にできるようになってるのはホッとしたがハイライトも出さないようにしたいなあ、できるのかな?
936 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 23:12:36.51 ID:Gppgeajp.net] できる。どっかのブログでやりかた見たけど忘れた。
937 名前:デフォルトの名無しさん mailto:sage [2017/10/05(木) 09:44:12.63 ID:NTKdykpp.net] ホップ(カーソル移動)、ステップ(ハイライト表示)、ジャーンプ(定義の場所に移動) Xcode9はよくできてるな!
938 名前:デフォルトの名無しさん mailto:sage [2017/10/05(木) 13:23:23.73 ID:j9fazbko.net] 327デフォルトの名無しさん (ササクッテロリ Sp75-2iPL)2017/10/05(木) 08:23:57.77ID:4UOAx4bZp 新しいこと覚えるくらいならビジネスロジックを勉強するよ 言語だのリアクティブだの状態管理だの フルスクリーンアプリじゃユーザーに全くメリットないし 業界に踊らされているだけ Objective-CユーザはObjCの新文法を使わない? genericsとかnilableとか少し古いとblocksやinstancetypeとかAppleに踊らされつつ 同じアホなら踊らにゃ損々と便利に使ってるけど
939 名前:デフォルトの名無しさん mailto:sage [2017/10/05(木) 14:56:32.48 ID:DCONgPWB.net] 人それぞれ。そう言うヤツもいるとなぜ思わないのか?開発向かないか業界病で頭が単純化しすぎ病なのか?w こっちに持ってこないで、言う本人に言いなさい
940 名前:デフォルトの名無しさん mailto:sage [2017/10/06(金) 14:13:25.71 ID:qhLWaNhq.net] Xcode 9でリファクタリング強化されたって聞いたんだけど、 これってObjective-Cでも使えるの? 使えるなら俺一生ObjCに付いていく。
941 名前:デフォルトの名無しさん mailto:sage [2017/10/06(金) 22:02:02.32 ID:FHIJEXWg.net] Objective-Cで使えないってことはないだろうさすがに
942 名前:デフォルトの名無しさん mailto:sage [2017/10/06(金) 22:56:31.41 ID:R7tcOQE1.net] >>918 だって、あっちだとスレチじゃんw 基本的にはObjCユーザもAppleに踊されてるって理解で良いのかな?
943 名前:デフォルトの名無しさん mailto:sage [2017/10/07(土) 00:41:25.81 ID:U7UMp42z.net] 馬鹿すぎで哀れ
944 名前:デフォルトの名無しさん mailto:sage [2017/10/07(土) 11:12:08.07 ID:s04ZU/0N.net] なんだろう、個人的にはSwiftやるならObjective-Cの方がいいと思う Cの勉強にもなるし Swiftは潰しがきかん
945 名前:デフォルトの名無しさん mailto:sage [2017/10/07(土) 12:02:44.93 ID:TgSupA0z.net] Swiftは相変わらずABI安定してないし、世代交代もまだまだ先という感じがする。 C言語やっておいて損はないというのは今も昔も変わってない気がする。 SDKの活用や今後のモバイル市場の縮小を考えると、Swift一本で戦うのは難しい。 教養とスキル構築のためにObjective-Cを選択するのはありだと思う。
946 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 19:06:32.91 ID:3FUN2GAU.net] Cが学べるってのは大きい。 昔はCに変なアレルギー持ってたけど、最近は割りといい言語だと思えてきた。
947 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 20:04:23.45 ID:M3+oH0ZC.net] Cは高級アセンブラだからね 能力がある人ほどマシンの性能をより高く発揮できるプログラムが書ける 細かな操作もできるから特に組み込み系などのプログラミングでは依然としてCが多いのものそれが理由
948 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 20:54:59.95 ID:3I5kECbD.net] objcで書いてたはずなのに最適化しまくって結局中身Cの関数とコールバックばかりになるよな
949 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 21:02:24.61 ID:xjGA/sOA.net] 人間のためにオブジェクト指向でかけるようにしてあげたCなのでマシン語が結局そうなっても速けりゃ本望
950 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 21:04:56.88 ID:3I5kECbD.net] >>926 今どきの組み込みはほとんどC++だぞ
951 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 21:06:41.85 ID:M3+oH0ZC.net] 組み込み系もObjective-Cにしようぜ
952 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 21:14:46.21 ID:3I5kECbD.net] >>930 clangのARMコンパイラもあるし可能だろ てかiOSはARMだし組み込みとも言える picとかavrとかになるとメモリもクロックも少ないしobjcが使えるメリットが無いな mbedIDEでobjcが使えるようになったらちょっとだけ嬉しいレベル
953 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 21:19:00.42 ID:M3+oH0ZC.net] >>931 >clangのARMコンパイラもあるし可能だろ >てかiOSはARMだし組み込みとも言える 確かにw pic, avrのレガシーコアの方(not ARM)のMCUはCでいいよね ObjCもいらんしC++もなくてもいい どこぞのArduin○さんもC++じゃなくて正直Cでいいかなって思ってる
954 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 21:30:30.49 ID:3I5kECbD.net] >>932 物によるけどな atmega328位のスペックならC++使う方が楽かもなぁ容量あるし i2cとかグラフィック描画関係はクラス分けたいし 逆にattinyはC++じゃ入り切らない事があるしそこまで大きい事しない picもUSBホスト機能とか付いてる奴とかの制御はC++使いたい
955 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 21:38:10.78 ID:M3+oH0ZC.net] ほむ
956 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 21:38:49.39 ID:M3+oH0ZC.net] C++のところがObjCでもいいけどね個人的には
957 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 22:10:57.58 ID:3I5kECbD.net] ここら辺のクロック(16MHz位)とかだとシングルスレッドだし一つの命令でのクロック消費がかなり後引くから objcのメッソッド呼び出しをどう扱うかだな オリジナル通りオーバーヘッドがある状態なら処理速度的に使い物にならないだろうし そこを最適化しちゃうならobjcである必要も無い気もするんだよね
958 名前:デフォルトの名無しさん mailto:sage [2017/10/11(水) 23:52:24.90 ID:M3+oH0ZC.net] 言語が高級である意味は人間にとってなわけで、最終的に最適化されるならCでいいってのも本当は変な話だと思うけどね それ言っちまうと究極は全部アセンブラでいい なんなら機械語でもいい
959 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 00:17:17.26 ID:b/Ml+r1m.net] 比較対象がobjcならって話だよ objcは中身Cだけどobjc特有の書き方をすると冗長すぎる動作をするってこと 極端に言えば所詮Cのマクロ集だから ただその冗長的な動作がobjcの良さだったりするから マイコンとかには向かないし意味の無い機能になってしまう 記法とかそういうのは無視してる、どの言語も慣れれば大して変わらないし
960 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 07:05:45.44 ID:EYbRFkN0.net] >>938 >>927 について
961 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 12:57:22.44 ID:b/Ml+r1m.net] 動作速度を上げるために工夫する事はいけない事なのかな?
962 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 13:31:01.75 ID:uZnuZ+2W.net] 次スレ不要
963 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 22:09:53.24 ID:RMeyvXX8.net] >>940 >>927 の最適化ってコンパイラが行う最適化のこと言ってるんじゃないの?
964 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 22:12:09.94 ID:b/Ml+r1m.net] >>942 違うわw なんでコンパイラがCの関数とコールバックに変換するんだよ さすがに分かるだろ
965 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 22:14:57.97 ID:RMeyvXX8.net] >>943 なんだ アセンブラリストみたら結局C関数羅列した時と同等コードになってるのかとおもた
966 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 12:50:19.84 ID:1
] [ここ壊れてます]
967 名前:ukxQn24.net mailto: ObjCのBlocksは最適化効くからかなり速いよ。 コールバック関数よりも最適化が効きやすい。 というかそこまで速度が必要ならそれこそObjC++の出番。 [] [ここ壊れてます]
968 名前:デフォルトの名無しさん mailto:sage [2017/10/13(金) 20:39:05.62 ID:3P7mMOBe.net] Objective-C++って意味がわからない コレイジョウObjectiveにする必要ねぇだろC++は…
969 名前:デフォルトの名無しさん mailto:sage [2017/10/14(土) 00:38:00.36 ID:34+XXBBA.net] C++は関数をクラスとして使い回すのがオブジェクト指向だろ?というC拡張 Objective-Cは関数をクラスとして命令を送ることで自律的に動作させるのがオブジェクト指向だろ?というC拡張 拡張の方向が違うので混在可能で、C++はいまのオブジェクト指向の原則からすると 相互関係が密になりすぎて使いづらい代わりにハード寄りで速度が出せるので Objective-Cの中でC++を使うためのしくみがObjective-C++ Objective-(C)に対してのObjective-(C++) 中身でCじゃなくてC++扱いたい人向け。
970 名前:デフォルトの名無しさん mailto:sage [2017/10/14(土) 00:45:54.33 ID:3UymfagZ.net] objcとC++との違いは動的言語かどうかの差だろ コンパイル時に動作が決まるC++に比べて動作時に動作が決まるobjcが速度で劣るのは仕方ない 書き方次第でどうにでもなるから問題にはならないけど Objective-C++は objcの中でC++の書き方が出来るってだけ 新しい言語ではない
971 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 10:27:11.08 ID:kjm4hBXm.net] 嫌いな言語5位入賞おめでとうございます
972 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 14:18:43.28 ID:pqVRGQDn.net] どこ調べだか知らぬが まぁ、名誉なことであるな。
973 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 16:40:08.13 ID:ymVoOBdW.net] 使われてるってことだもんな そもそも使われてないと好きも嫌いもない
974 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 19:34:40.33 ID:sl8NUeaa.net] iPhoneのお陰様や
975 名前:デフォルトの名無しさん [2017/11/03(金) 20:24:45.50 ID:HuwGCmuD.net] 次スレ待ち
976 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 23:58:10.94 ID:kjm4hBXm.net] Objective-C [ObjC part:9]; mevius.2ch.net/test/read.cgi/tech/1458491343/
977 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 01:38:34.48 ID:TcHqtFvm.net] 頭がおかしいにもほどがある
978 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 02:41:42.85 ID:aeYzbOC4.net] >>949 >>954
979 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:01:31.81 ID:MWh/LW9F.net] >>955 >>956 ん?反論が無いなら俺の勝ちだぞ?
980 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 09:17:22.75 ID:AsGnkVE4.net] 反論wwさすがキチだな。キチには勝てないよw
981 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:44:57.27 ID:+jc3Zkkz.net] >>957 反論? Objective-Cアンチスレでも立ててそこでやれば?
982 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 15:28:55.43 ID:vRv6T9rF.net] 既存のObjective-CプロジェクトをObjective-C++にする場合 なんか問題になることってある? 型キャストしろって警告は沢山出てくるけど、それ以外は特に問題ない気がする。 ObjC++化で動作が変わるかどうか一番心配。
983 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 16:37:44.96 ID:xaHbiVeP.net] 予約語が増えるとか、autoの意味が変わるとか、文字定数の型が変わるとか 関数宣言の引数なし()が可変長引数から(void)と同じに変わるとか
984 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 11:33:21.15 ID:2AT1utsC.net] C言語からC++への移行手順を参考にすれば問題ない気がする。 Objective-C固有の愛称は特に無い。newキーワードとの関係でNSObject.newが使えないくらいか。[NSObject new]なら問題ない。
985 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 16:17:54.74 ID:d3/PBg+F.net] NSObject.newはちょっと...w
986 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 16:35:13.68 ID:o8TjkfoV.net] NSObject.new って ObjC2.0 の新記法?
987 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:44:32.83 ID:d3/PBg+F.net] 新記法ってか...まあ、そうといえばそう instance.property はコンパイル時に単に [instance property] に置き換えられるってだけで、使用に制限はない(コンパイルエラー/ウォー
988 名前:jングは出ない)。引数なしならなんでもドットで書ける。確か値を返さないのでも( [instance run]; を instance.run; とも) ドット記法(getter/setter)は単に置き換えられる(setterはset付けられるけど)というのを理解していれば制限は無いので自由っちゃあ自由だが、それは違うだろうという、個人的にw [] [ここ壊れてます]
989 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 18:51:06.70 ID:d3/PBg+F.net] ああ、クラスプロパティができるようになったから、instance.propertyだけでなくclass.propertyもありな、newはクラスメソッドしかないしclassで書くべきだったな
990 名前:デフォルトの名無しさん [2017/11/17(金) 03:39:04.53 ID:KuiGlQ+X.net] 関数の頭の+と-ってインスタンス済みか違うかってことと継承できるかどうかのちがい? どっちがメモリ食いでおそいの?
991 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 07:12:37.67 ID:Q8rdVBz+.net] クラスメソッドとインスタンスメソッド
992 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 07:49:16.58 ID:vXeaPuMS.net] +(void)test{ NSLog(@"C %zu", malloc_size((__bridge const void *)(self))); } -(void)test{ NSLog(@"I %zu", malloc_size((__bridge const void *)(self))); } メモリサイズ見るとallocしてないからクラスメソッドではセルフのサイズは0になるよ。 速度に関してはメモリ確保しない分クラスメソッドの方が速いだろう 計算だけやらせるとかだけならクラスメソッドの方が良いだろうけど それならC関数の方が優位
993 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 12:40:32.69 ID:Sc6rYFXH.net] staticおじさん
994 名前:デフォルトの名無しさん [2017/11/17(金) 12:49:30.17 ID:BwXttssD.net] 継承しないなら+が正解なんですね ありがとうございます。
995 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 12:56:32.08 ID:qbOFfyPG.net] 継承しない? そもそもクラスメソッドも継承されるけど
996 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 13:10:53.82 ID:qbOFfyPG.net] NSObject を継承した Test1ClassのクラスメソッドtestFuncは Test1Class を継承した Test2Classでも呼べるよ てかクラスメソッドを継承出来なかったらNSObjectのallocも使えなくなるでしょ @interface Test1Class : NSObject +(void)testFunc; @end @implementation Test1Class +(void)testFunc{ NSLog(@"call test"); } @end @interface Test2Class : Test1Class @end @implementation Test2Class @end int main(int argc, const char * argv[]) { [Test2Class testFunc]; }
997 名前:デフォルトの名無しさん [2017/11/17(金) 14:46:32.69 ID:KuiGlQ+X.net] +でも継承できるんですか 勘違いしてました すると+と比べて-のメリットは何でしょうか?
998 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 15:37:54.52 ID:oYmLZZ1y.net] メリットってか機能が違う
999 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 17:12:02.46 ID:0jV1JJrR.net] OOPSの理解が先だな。OOPS理解すればそんな質問してたのがアホだったと思うだろう
1000 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 17:31:12.22 ID:5PrRKVul.net] いやJavaとかから来たらわからんだろうよ 通常のオブジェクトがそれが属するクラスにメソッドを定義することで、それをコールできるのと同様に Objective-CではSmalltalkやRubyなどと同様に クラスもまた、自身が属するメタクラス(さらに上位のクラス)にメソッドを定義することでそれをコールできる メタクラスはクラスとちがって無名なので、便宜上そのクラスへのメソッド定義(インスタンス向け)を - で、 対応するメタクラスへのメソッド定義(そのクラス自身向け)を + で表す決まりになっている つまるところ、+ と - はそのメソッドが定義される場所(ひいてはそれをコールできるオブジェクト)が違う
1001 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 17:50:54.14 ID:P19mM9yq.net] UMLの-と+でインスタンスメソッドとクラスメソッドを区別するやつ Objective-Cが由来なのかな
1002 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 17:52:10.61 ID:P19mM9yq.net] すまん間違えた UMLの-と+はパブリックとプライベートだった
1003 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:38:09.45 ID:0jV1JJrR.net] >>977 なんか小難しいこと書いて言ってるけど、そんな知識をひけらかす必要あるのか?元の ID:KuiGlQ+X には そのレスの絞めとして、クラスメソッドとインスタンスメソッドは明確に性格が違うと言っているんでしょ?なぜかはOOPS理解していれば聞く必要もないことで、それは、Javaでも同じだろう 理解してないようだから、早々に>>970 なんて言うヤツが出たんだろ
1004 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:47:40.32 ID:5PrRKVul.net] >>980 ひけらかすほどの知識とも思わんが それとも、こんな基本的なことも知らないで使ってるのか? そもそもOOPSってなんなんだよ…
1005 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:53:04.67 ID:0jV1JJrR.net] >>981 OOP Style だよ。まあ、OOPでいいけど 言ってるのはクラスメソッドとインスタンスメソッドは違うってだけじゃん?何をそんな小難しく読みづらいっていうw いきなりJavaだからとかから始まって...あるとしたら、Objective-C固有のかと思ったらそうでもないし
1006 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:05:43.30 ID:5PrRKVul.net] >>982 Java、C++等の staticメソッドと、Objective-Cや Smalltalk、Ruby のクラスメソッドは別物だよ? それすら分かってないのか…
1007 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:13:50.64 ID:0jV1JJrR.net] >>983 機構/実現方法としてだろ?だから、そんなこと元々のヤツは聞いてないだろって言ってるのに。だからそゆ細かいとこをひけらかすって言ってるのに(「俺には当然」らしいけけど、なんでだったらわざわざ書くのか?) 実際インスタンスメソッドがメインでクラスメソッドなんて書く機会/必要性は割合的になくね?OOPS的にはw でも、やっぱり必要な場合があるから、なんかあんたが違うと拘ってるけど、クラスメソッドがそれぞれの言語でもあるんだろ? そゆ意味で元々の俺のレスだよ。なんでそれを否定して細かい違いを言ってるのかいまださっぱりわからん=知識のひけらかしにしかみえんのだけど
1008 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:32:51.40 ID:oYmLZZ1y.net] すーぐ熱くなる マなんてこんな奴らばかりなんだからお互い無駄に体力使うなよ コミュニケーション以外の所に能力値振ってるから説明がヘタクソになるんだよ 解説本とかみんなそうだろ ともあれID: KuiGlQ+Xはメリットデメリットの話する前にそれが存在する理由と どのような使い分けがあるのかを考える方が良い
1009 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:34:13.50 ID:0jV1JJrR.net] うるせっww
1010 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:38:54.65 ID:5PrRKVul.net] >>984 じゃあ、私はクラスメソッドなんか使いません。staticメソッドと区別も分かりません。でいいじゃん まず、クラスメソッドの価値を見いだせないそのOOPSwとやらをなんとかしろよ
1011 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:42:04.64 ID:0jV1JJrR.net] >>987 誰になに言ってるのか不明すぎ 「クラスメソッドの価値を見いだせない」とかいきなり。誰も不要なんて言ってないけど?必要な場合があるって言ってるじゃん?ああ、「なんだか知らんが必要な場合があるんだろうな」と俺が言っているととっているのか??んー、だったら、すげえなww なんだかどうしても俺を下に見下したいだけにしか見えないんだけど?数スレ前からずっと
1012 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:51:55.22 ID:i5UkdOT+.net] これはID:5PrRKVulがきしょい
1013 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:54:52.75 ID:5PrRKVul.net] >>988 だってOOPSwとか分からんこと言ってる時点で明らかに下じゃんw 逆にどうしてその程度で上から目線を貫けるのか謎だわ
1014 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:58:05.03 ID:5PrRKVul.net] たぶん自慢げに語るそのOOPSwとやらの説明すらまともにできないのでは?との想像に難くないレベルの低さ
1015 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:02:14.50 ID:0jV1JJrR.net] >>990 OOPと書かなきゃダメなのか?まあ、一時的にOOPSもあったんだよ。知らないだろうけど たかがそれだけのことで全否定できるって、さすが細かいとこにこだわるお人だなあ&くだらなさすぎ&本来の話題が逸れすぎだと思うぞ。なんかあんたが心配(自ら自らを貶めているようでw) 長引くようだったら次スレたててw
1016 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:11:22.65 ID:oYmLZZ1y.net] 相手を理解しようとしないで自分のペースでしか話せないと苦労するだろう ようはOOPSって Object Oriented Programming Styleでしょ? つまりオブジェクト指向プログラミングについて学べと言ってるんじゃ無いの? ID:KuiGlQ+Xは、メリットデメリットって言ってるとこからして オブジェクトを生成するってことを理解してないレベルの話だよねこれ まずインスタンスにアクセスした事無いからインヘリタンスとか関係ない所でメリットについて疑問が湧いちゃったんだろうし
1017 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:15:45.26 ID:0jV1JJrR.net] >>993 うん。全くそうなんだけどねえ (まあ、あんたは>>985 で理解してくれてる/その前でもすでに理解してると思ってたけど)
1018 名前:デフォルトの名無しさん [2017/11/17(金) 20:29:25.96 ID:KuiGlQ+X.net] うーん、さっぱりわからないです。すみません。 とりあえずViewcintrollerでは-、汎用クラスは+で使い分けてたんですが、+のがメモリ食わないなら、なるべく+使っとけばいいんでしょうか
1019 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:35:49.15 ID:Q8rdVBz+.net] このかなり根本的なとこから理解してない感w
1020 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:37:15.26 ID:oYmLZZ1y.net] Viewcintrollerでメモリ使ってるんだから Viewcintroller内で使うメソッドをメモリのためだけにクラスメソッドにする意味は無いし無意味 といってもまずインスタンスについて理解してないと、この話は進まないだろう あなたの言う+を使ったメソッドで運用出来てるならそれで良いしそのうち躓くだろうから そこで気づければ良いね としか言えない感じの大きな壁があるように感じる
1021 名前:デフォルトの名無しさん [2017/11/17(金) 20:46:44.49 ID:KuiGlQ+X.net] クラスは設計図、インスタンスはクラスに基づいて作られた実体と聞きました。 設計図メソッドと実体メソッド? どっちもおなじことできてるんでなんだろ?と思いました
1022 名前:デフォルトの名無しさん [2017/11/17(金) 21:16:54.72 ID:Eetf/DNi.net] クラスをメモリーにロードするとインスタンスになるという説明だと どんな問題が起こるだろうか。
1023 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 21:17:37.30 ID:oYmLZZ1y.net] 次スレ Objective-C [ObjC part:9]; mevius.2ch.net/test/read.cgi/tech/1510920033/ リンク多いな リンク切れは修正or代替サイトに変更しといた 即死回避何個だ?
1024 名前:デフォルトの名無しさん [2017/11/17(金) 21:46:24.64 ID:KuiGlQ+X.net] ググッてみました。 クラスの中のメソッド間で値の受け渡しが出来るのは、クラスメソッドのメリットですね。 でもインスタンメソッドでも@interfaceで変数定義したら受け渡しができちゃう。 うーん、インスタンスメソッドでいけるとこまでいけば道が開けるんですね やってみます
1025 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 21:48:09.39 ID:oYmLZZ1y.net] >>998 どっちがどっちだか分け分かんなくなってるだろww 埋め
1026 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 1112日 8時間 12分 52秒
1027 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています