- 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
- 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
すまん日本語で頼むわ
|

|