Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2014/11/01(土) 13:35:17.70ID:12FSUUrY
Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
 (Wikipedia:http://ja.wikipedia.org/wiki/Objective-C より)

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

Objective-C [ObjC part:7];
http://toro.2ch.net/test/read.cgi/tech/1330330906/
Objective-C [ObjC part:6];
http://toro.2ch.net/test/read.cgi/tech/1313891268/
Objective-C [ObjC part:5];
http://hibari.2ch.net/test/read.cgi/tech/1279730299/
Objective-C [ObjC part:4];
http://pc12.2ch.net/test/read.cgi/tech/1239721860/
Objective-C [ObjC part:3];
ttp://pc12.2ch.net/test/read.cgi/tech/1186543111/
Objective-C
ttp://pc11.2ch.net/test/read.cgi/tech/1106983092/
Objective-C
ttp://pc5.2ch.net/tech/kako/990/990574267.html
2017/08/05(土) 18:13:52.73ID:GxOZ02Sj
大した違いじゃない
だが「この変態!」という根強い意見にも耳を傾けなければならない
2017/08/05(土) 19:23:41.38ID:AGcDSNVp
>>635
だからSwift使ってればいいと思うの...
2017/08/05(土) 19:39:40.05ID:QC2awpIr
Swiftが出る前から Objective-C 2.0 を Modern Objective-C と銘打ってモダンを追求してたし、それについてはいつものAppleよな

SwiftはDynamic Dispatchを減らす機構を入れてObjCに比べて速度向上を図ったらしいから、ObjCにもバックポートして欲しい
OptionalやGenericsと同様、Swiftで試作してObjCに取り込めば皆ハッピーなんだよなぁ
2017/08/05(土) 19:40:24.64ID:GxOZ02Sj
>>636
変なこと言う奴だな
あいにく俺はSwift使ったこと無いんだわ
2017/08/05(土) 19:42:36.20ID:AGcDSNVp
>>638
あ、そうなんだ
>>633を書くくらいだからてっきり
メッセージ式の表記ってそんなに気になる?
自分が最初にはまったのはセレクタの時のコロン忘れかな
それ以外はあまり苦労した記憶がない
2017/08/05(土) 19:46:59.94ID:GxOZ02Sj
>>637
速度がネックだったObj-Cランタイムだってアセンブラで書き直したらしいし
速度向上と言っても大したこと無いけどな
nilなら何もしないルールがあるからランタイムを経由しないわけにはいかない

>>639
三番目の>>633はSwiftじゃなくて俺俺言語
あいにくSwiftのようになったようだが
2017/08/05(土) 20:03:05.50ID:AGcDSNVp
Objective-Cが当初敬遠されたのはObjective部分のsyntaxというよりはメモリ管理だと思ったが
まあそれに追い打ちをかけるようにallocとinitの組み合わせが普通に頻出したもんだから変態的だと思う人が多かったのだろう
さらにオブジェクト変数がポインタともなればなおさらだろうな

Object *obj = [[Object alloc] initWithParam: a];
2017/08/05(土) 20:28:36.38ID:GxOZ02Sj
俺は別に、Obj-Cは実引数の順番が変わるぐらいで変態だとは思わんね
ラベルは有った方がいいし、第一引数は省略可とすべきだし
今風のシンタックスにするとあら不思議Swiftみたいだね
2017/08/05(土) 20:34:58.96ID:AGcDSNVp
>>642
だったらこんなところにいないで、あなたがイメージした理想syntaxと近いSwift使えばいいじゃん...
2017/08/05(土) 20:45:40.97ID:NrXpiBRr
何かおもしろいやつがいるな
>>642を意訳すると
Swift使ったこともないから全然知らないんだけど、普通に自分で今風の文法みたいの考えてみたら謀らずともSwiftになっちゃった
俺でも思い浮かぶほどSwiftって自然な文法だっんだ!Swift最高じゃん!
でおk?
2017/08/05(土) 20:50:17.10ID:GxOZ02Sj
>>643,643
いや俺Swift嫌いなんだよw
ポインタ扱いづらいだろ、よく知らんけど
その割に仕様を減らすんじゃなくて増やしてるし
2017/08/05(土) 20:53:47.23ID:AGcDSNVp
>>644
www
いや俺ももはやこの人が何を言いたいのかよくわかんなくなってきたのよ...
2017/08/05(土) 20:56:12.81ID:QC2awpIr
メモリ管理のalloc/freeやポインタ変数なんてそれこそCをやってたら気にならないでしょ...

>>640
本当に性能良くなるのは特定条件下でさほど影響が出るものじゃないよなw
それでもまぁObjCがSwiftに劣っている点ではあるので、気が向いたら対応して欲しいものよ
2017/08/05(土) 20:59:57.92ID:GxOZ02Sj
>>646
それはちょっと色眼鏡で見すぎだね
アンチすぎるんじゃね?w
俺は使わないからどうでもいいし、Swiftはアンチになるほどの存在では無い
2017/08/05(土) 21:00:23.43ID:AGcDSNVp
>>647
いやそのはずなんだけど、結局Objective-Cをディスってる人がけっこういるのは、純粋なCをちゃんと使ってた人が殊PCアプリプログラマにおいては少なかったってことなのかね?
2017/08/05(土) 21:05:32.04ID:GxOZ02Sj
>>647
コンパイル時に静的に解決したいメソッド呼び出しには、たぶんレシーバにnonnull必須になるのかな
それがSwiftにnonnullが必要だった理由かも
Obj-Cで高速化が必要な場合は、Cで書いちゃえばいいのでいらんと思うけどね
2017/08/05(土) 21:09:23.61ID:NrXpiBRr
とりあえずSwift使ったことないとか言ってるわりにわりと細かいSwiftネタ挟んできてて草
2017/08/05(土) 21:10:26.33ID:GxOZ02Sj
>>651
気にしすぎだってw
2017/08/05(土) 21:15:06.89ID:NrXpiBRr
>>652
いや誰がみてもSwiftの最新情報を調べてるレベルだろ
使ったことないのに嫌いとかいっちゃうほどバカじゃないだろうし
隠す理由が謎
2017/08/05(土) 21:19:04.08ID:GxOZ02Sj
>>653
全然調べてないよw
自分でもたまに心配になるくらいに
俺俺言語とした例は、開発中のインタープリタの構文なのさ
JS, C#, Swiftあたりを参考にしてるから似てるんだよ
2017/08/05(土) 21:21:37.41ID:NrXpiBRr
>>654
嘘に嘘の上塗りをしてるようで芝居臭いが、まあじゃあ嫌いなSwiftみたくならないようせいぜい参考にしていい言語作ってくれ
2017/08/05(土) 21:23:19.82ID:GxOZ02Sj
>>655
大嘘ってことにしといてくれww
2017/08/05(土) 21:26:46.26ID:NrXpiBRr
>>656
わかったよ、嘘つき
2017/08/05(土) 21:40:23.31ID:AGcDSNVp
(^_^;
2017/08/05(土) 21:53:47.03ID:QC2awpIr
>>649
いやだから、メモリ管理は問題じゃなくて、文法が変態的だからディスられてるんじゃないの
[ ]とか、@とか、冗長な命名規則とか、純粋なCをちゃんと使ってた人ほど辛いわ

CのコードはObjC上にコピペで動くけど、ObjCのコードはC上にコピペでは全然動かないよね
それくらいにCとObjCは別物になってて、他に類を見ない独自文化を作り上げてるから取り回しの悪い言語だとディスられる
2017/08/05(土) 22:03:06.65ID:AGcDSNVp
>>659
事実上Objective-Cの文法で書くところはCocoaフレームワークを使う部分だからそれをCで書きたいケースはないと思うけど
よりprimitiveな処理をする部分について資産流用したくてCソースをインポートしたいことはあると思うけど

自分はこれくらい明確に違う方がCとCocoa部分がはっきりわかっていいと思ったけどな

命名規則はObjective-CというよりCocoaの約束かと
@やコンパイラディレクティブを多用してるのはObjective-Cが純粋なCのスーパーセットであるという仕様上仕方ないと思うけど確かに正直変態的だと自分も感じたのは事実だが...
2017/08/05(土) 22:08:18.49ID:AGcDSNVp
まあかく言うおれも最初Objective-Cのソースに触れた時は[ ]とかいうわけわからん記法でメソッド呼び出ししてるかと思えばNSLog(@"hoge¥d", n);とかも同じソースに書かれてたりして、はぁ?どっちだよとは思ったけどなw
2017/08/05(土) 22:09:17.65ID:AGcDSNVp
ああ、%d...
2017/08/05(土) 22:25:34.05ID:ydBhceAI
Objevtive-Cが変態的と言われるのは、まあ、しょうがないが、すぐに慣れることだな。_がどうとかもどうでもいい細かいことにこだわるなあw
2017/08/05(土) 22:29:47.63ID:ggnuHEiJ
NSObjectってC側から見ると構造体にすぎないから
cから触ることが可能って聞いたけど本当?
2017/08/05(土) 22:33:45.97ID:ydBhceAI
>>659
>CのコードはObjC上にコピペで動くけど、ObjCのコードはC上にコピペでは全然動かないよね
こんなアホ(失礼)なこと言ってるんじゃ、その下や上の「純粋なC」どうとか言える立場になさげ/知識がほとんどなさげにしか見えない
2017/08/05(土) 22:37:31.68ID:GxOZ02Sj
>>664
@def使えばコンパイル時に構造体と見なしてメンバーフィールドを直接触れたはずだが、
非推奨なんで使用禁止になったかもw わからん

不透過型構造体のポインタだから普通には無理
ややこしいことをすればできたと思うが、普通はやらない
2017/08/05(土) 23:01:09.52ID:GxOZ02Sj
ああメンバーじゃなくオブジェクト自体のポインタのことなら触れるよ
そもそもObj-Cがポインタ渡しだし
2017/08/05(土) 23:10:37.16ID:slWszTbQ
急に盛り上がってる
2017/08/06(日) 02:17:31.34ID:5hrgPajG
とりあえずここまでをまとめるとObjective-Cは変態的だけど柔軟性は半端ないでいい?
2017/08/06(日) 02:40:44.78ID:EhIWQ3kd
「おれけっこう柔道やってたからさーグレイシー柔術が変態にしか見えないのよねー」

(…そもそも違うものやんwwwなにが言いたいんやこのオッサンw)

だいたいこんな。
671デフォルトの名無しさん
垢版 |
2017/08/06(日) 08:16:47.23ID:A+R4LQxw
>>645
それ判る。
C言語の関数と一緒にSwiftを使うのは大変。
構造体へのポインタを引数に取るC言語の関数を、Swiftで呼び出すの、
どうすんだ?

UnsafeRawPointer<XXX>とか使うんだろうけど。
2017/08/06(日) 08:18:51.28ID:5hrgPajG
>>671
SwiftとCを一緒に使うくらいならObjective-Cでいいよね
2017/08/06(日) 08:22:40.12ID:5hrgPajG
>>670
すまん、よくわからんw
2017/08/06(日) 10:45:42.87ID:/dqOVGNE
ポインタがないSwiftだとCの関数呼ぶ時そこそこ面倒なんだな
2017/08/06(日) 13:23:04.82ID:h75sRnvC
>>669
クラスとクロージャが使えるメモリ管理不要のC言語(C++も使えるよ)
2017/08/06(日) 13:31:20.41ID:h75sRnvC
ああ根本の動的ディスパッチが抜けてたな
2017/08/06(日) 15:30:44.79ID:5hrgPajG
>>675
>>676
なるほど
結局オブジェクト思考なC言語なんだよってところはその通りだよな
2017/08/06(日) 15:51:16.15ID:6obaa7Zo
objcの一番のやばい所は実行中にコードの変更が出来ちゃう事だろ
そのせいでAppleもカーネル関係ではobjc使えなくてc++使ってんだから
2017/08/06(日) 16:03:11.05ID:5hrgPajG
>>678
Could you tell me the details?
2017/08/06(日) 16:21:29.43ID:h75sRnvC
実行中に変更可能なユーザーインターフェースをプログラマが作ればね
そりゃ根本が動的ディスパッチだからどうにでもなる

>>679
クラスもセレクタもユーザー入力で改変可能に作れる
2017/08/06(日) 16:27:58.98ID:5hrgPajG
>>680
まじか
柔軟性はんぱねぇな
でもそれは当然ソースコード上でってことでしょ?
脆弱性とは違うと思うけど
2017/08/06(日) 16:32:36.09ID:ZQYigHRc
プラグインでメソッド交換出来るのを知らんのか。
2017/08/06(日) 16:47:40.53ID:5hrgPajG
すまん知らん(爆
でもそれはあくまでそう作ればでしょ?
逆に他の言語だとできないの?
2017/08/06(日) 16:59:14.99ID:h75sRnvC
>>683
要は、クラス/セレクタは、文字列から取れる/生成できるから、
それを利用した悪意あるコードを書けるし、プログラマが意識せずそうなってる事もありうる
2017/08/06(日) 17:15:30.25ID:ZQYigHRc
>>683
作れば、じゃなくてObjC のメソッド呼出しは最初からそうなってる。

古い情報だがここら辺読めば分かる
http://news.mynavi.jp/column/objc/043/
がお前は何も分かってないみたいだから読んでも無理か。
2017/08/06(日) 17:28:11.19ID:uZylSw7t
>>665
お前、ObjC使ってるのに[や]を使わないのかよwww面白いなwww
2017/08/06(日) 17:37:29.52ID:uZylSw7t
>>675
C++が全く同じこと出来てるんだよねぇ
常に動的ディスパッチという点は実現してないけども

まぁC++の機能をモダン()に文法ラップした言語がObjCだから当然なんだよな
変態文法でC使ってると取っ掛かりは辛いけど、まぁ慣れれば使えなくはない言語よ
2017/08/06(日) 17:57:03.87ID:5hrgPajG
>>684
結局セレクタ(=文字列)としてマシン語に組み込まれちゃうからハッキングされるってこと?

>>685
ありがと
でも一言多いんだよなぁ。。
2017/08/06(日) 18:06:37.63ID:h75sRnvC
>>688
その辺は悪意を持って追求した事無いけど、やり方は色々あるだろうね
2017/08/06(日) 18:08:19.22ID:5hrgPajG
>>687
Objective-CとC++でほぼ同時期に独立して開発されたんじゃなかったっけ
2017/08/06(日) 18:09:36.01ID:5hrgPajG
>>689
仮にセレクタ文字列がそのまま一意にマシン語にコーディングされてるとなると、なんかJavaのバイトコードみたいで微妙だなぁ
2017/08/06(日) 18:35:06.60ID:0XdHuxlK
>>686
イミフすぎ
何言ってるの?ぶりからは同一人物か?ww
2017/08/06(日) 18:54:49.85ID:0XdHuxlK
>>678
そのせいではなくて、単に速度やコードの重さからだろう。言っているのはIOKitのことか?カーネルの部分ではC++でさえなくCだし
Objective-Cのその部分でナニかあったというのは聞いたことは無いなあ。なぜかw
フックするのは簡単だが、フックするコードが活性化するのは簡単じゃないし。まあまだ簡単ぽいのは閉じる生きづらい方向にはしているけど
2017/08/06(日) 19:09:48.12ID:5hrgPajG
>>693
すまん日本語で頼むわ
2017/08/06(日) 19:34:46.57ID:0XdHuxlK
>>694
ん??
まさか
>フックするのは〜
の部分じゃねえだろうな?wてか、無理せずに読めないなら読まなくていいよ。あたなのレスにレスしてるわけでもなく
2017/08/06(日) 19:36:00.87ID:5hrgPajG
>>695
>まあまだ簡単ぽいのは閉じる生きづらい方向にはしているけど
2017/08/06(日) 19:47:33.45ID:0XdHuxlK
>>696
ああ
前のはIM plugin(だったけ)で簡単に、それが閉じられてScriptプラグインでとか。それもrootlessになってrootless解除してからじゃなきゃという、
(ある意味)まっとうなプロダクトであるSIMBLが/を使えるようにするのがめんどくさくなってるというのが代表的かな
2017/08/06(日) 20:19:06.33ID:uZylSw7t
>>692
すごいなー、メッセージ式表記使わないでObjC書くんだなー
C関数しか叩かないでObjCコードを書く変態は尊敬するよ
2017/08/06(日) 20:22:06.82ID:0XdHuxlK
>>698
いやあ、マジで何言ってるの?www
もうキチとしか見えないぞ。いいのか?w
2017/08/06(日) 20:27:26.94ID:5hrgPajG
お前ら何を言い合ってるんだよ。。
2017/08/06(日) 20:28:29.68ID:0XdHuxlK
>>698
メッセージ式だのObjective-C固有/追加された部分があるから、Objective-CをCにコピペってもCコンパイラが理解できるわけないじゃん。んなこと言うのもなんか恥ずかしいw当たり前のことをさも言うのはナニもわかってないんだろな
(そうでないからCじゃなーいとか言いそう/言いたいのかもだが)
っていうのがそもそもの意味なんだが。なんでそんなトンチンカンすぎるキモい絡み方を続ける意味がわからん。同一人物だったらありそうだがww

これ以上イミフすぎのレスするなら、真性とみなすぞ
2017/08/06(日) 20:29:43.72ID:0XdHuxlK
>>700
しらんwwまったくわからん。そりゃお前にもそう見えてもしょうがないww
2017/08/06(日) 20:30:22.17ID:m6etrNEf
オブシー使ってるやつはキチガイってよくわかるスレ
2017/08/06(日) 20:32:05.49ID:5hrgPajG
>>703
世界中にどんだけキチガイがいるんだよ。。。
2017/08/06(日) 20:33:41.03ID:h75sRnvC
キチガイは褒め言葉だぞ
2017/08/06(日) 20:34:37.21ID:uZylSw7t
ObjCコードがCコードにコピペできるって愉快な信者をからかって遊んでる

多分、NSLogとかのC関数だけ使って
NSObject *object = [NSObject new];
なんて[]を使うコードは書かない変態なんだよ
やっぱりObjC信者は変態ばかりだな(褒め言葉
2017/08/06(日) 20:38:13.55ID:5hrgPajG
まあなんだろうな
conventionalなC言語のソースコードはObjective-Cのソースコードでもある
なぜならObjective-CはCの純粋なスーパーセットだから
2017/08/06(日) 20:40:19.87ID:0XdHuxlK
>>706
はあ?遊んでるww
「読めない」のはわかったし、それはしょうがないし特にとは思わないが、そこまでんなこと言った覚えは全く無いことをさもなのは自分の脳内で閉じてるという真性に近しい人でしかないと思うぞ。なんの為にレスしてんだか…そか、真性だからか?w
2017/08/06(日) 20:42:18.48ID:uZylSw7t
>>701
でだ、元々はCとObjCが全然違うもので、CやってたからってObjCが素直に慣れられるものじゃないって話をしてたわけでな
その話の流れを見てないで、「ObjCがCにコピペできるわけない」の部分だけ取り上げて云々ってのは話がズレてるわけよ
そのズレを笑いどころにネタを振ってくれてるんじゃないの?本気でそこを指摘してるの?
2017/08/06(日) 20:42:20.49ID:0XdHuxlK
>>707
元々はCのプリコンパイラでなかったっけ?
確か、今でも、Objective-CのソースからCのソースを捌けるはず。なので、CでObjective-Cクラス/機能をバリバリ扱えないこともない。それをするのは人間業ではないけど
2017/08/06(日) 20:45:20.71ID:0XdHuxlK
>>709
お前にとってはそうかもしれないが、そんな当たり前すぎることを言うこと自体がって話だよ。普通は言わないと思うぞ。んなこというヤツの知性が疑われるからな

で、お前が言う元々の話も、お前はそうかもしれないでしかない。Objevtive-Cのよほど初心者の本でなければ、Cを知っているのが前提だからな。お前の論で言えばCを知っているのが前提ってありえないだろう
712デフォルトの名無しさん
垢版 |
2017/08/06(日) 20:51:12.38ID:A+R4LQxw
>>706
NSLogはC言語の関数ではないだろう!
Objective-Cのグローバル関数。
書式文字列なんて、C言語とは全く別。%@とか。
引数も、Objective-Cのインスタンスが必要。
@“OK”とか!
713デフォルトの名無しさん
垢版 |
2017/08/06(日) 20:52:15.75ID:A+R4LQxw
>>712
ぁぁ、間違えた。@“OK”はNSStringのインスタンスね。
2017/08/06(日) 20:54:43.07ID:/dqOVGNE
久々にObjective-Cでググったらこんなページが
http://qiita.com/koher/items/4aea541fd0f0d8a9a166
こんなあからさまに臭いことするからSwiftはゴリ押しとかいわれるんだよな..
715デフォルトの名無しさん
垢版 |
2017/08/06(日) 20:57:10.69ID:A+R4LQxw
おっと、NSLogってのはFoundation Functionってカテゴロリに分類されてるね。

NSAssert, NSLogvとかと同じなかまかぁ。あまり意識した事なかったけど。
2017/08/06(日) 21:00:36.71ID:5hrgPajG
>>712
その話は微妙なところだな
ある意味でObjective-Cたらしめてる部分でもあるんだが、関数はCといってもいいんじゃないだろうか
まあCはObjective-Cに完全に内包されているのでObjective-Cの関数という表現も正しいと思うが
結局引数としてわたされるのはNSStringのオブジェクトであるとはいえ実態はただのポインタな訳で、ポインタを引数にとるただのC関数とも言える
2017/08/06(日) 21:02:32.09ID:5hrgPajG
>>710
まあObjectiveな部分の記述はコンパイラディレクティブを使って分離してるからね
2017/08/06(日) 21:04:51.33ID:0XdHuxlK
>>712
まあ、インターフェースがCなんだからCでええやん。CoreもCじゃないとか言うと、pure C (?)と C がごっちゃすぎ。まあ元々は pure C のことを言い出してるっぽいが、本人自体があやふやなので…w

>>714
なんか前に読んだことある
>nil に対するメソッドコールはエラーにならずに無視されるという悪しき仕様
ってとこで、ああ、この人は「そういうコード書く人」なんだなと。読むに値しないと判断したので、そんな単に個人のご意見に「臭いとかゴリ押し」とか噛み付くほどでも無いだろう
(「そういう〜」というのは、逐次nilか注意してないでコードを書く人。意識してたら普通にその動作で問題無いのだがな)
2017/08/06(日) 21:07:13.58ID:5hrgPajG
>>715
カテゴロリwww
2017/08/06(日) 21:26:34.09ID:uZylSw7t
>>711
うーん、論旨が変わってしまってネタが分からなくなってしまった, >>709のマジレスをなかったことにしたい
何かが間違っていてアホ(失礼)にあたるというツッコミ?ボケ?(>>665)で、それが「ObjCのコードはC上にコピペでは全然動かない」じゃなかったのかいな

純粋なCをちゃんと使ってた人ほど文法がゴロっと変わるObjCは辛い、が当たり前のことでそれが誰かの失礼に当たる?
まー、当たり前のことでもいいんだけど、それじゃObjCを擁護出来てないからそう言う意見じゃないよな

・Cの文法とObjCの(変態)文法は全然別物である
・純粋なCをやっているとObjC文法は素直に習得できる
この二つを矛盾せずObjC擁護してくれるとありがたいんだが出来そうかね
2017/08/06(日) 21:26:49.45ID:6obaa7Zo
>>693
まぁIOKitもそうだけど
内部でC++は結構使ってるよね
KEXTだってKernel EXTensionなんだからカーネルと言ってもいんじゃん?
少しでも拡張性を持ってかつハックされたくない所のライブラリとかC++使わざるおえない感じを受けたよ
てかmac自体初期から組み込みの色が強いからC++よく見るし親和性も高いイメージあるわ
あと関係ないけどクリエイティブ関連って言うとあれだけどOpenGLとかCinderとかそういうのと同じ匂いがする

objcはメソッドや昔はクラスごと入れ替え出来るからハッキングや割れが簡単なのが問題になったな
セキュリティやシリアルの発行をobjcだけでやるようなエンジニアがアホなだけだけど
今でもSafariのハックは盛んだし昔はFinderにタブ付けたりしてたでしょ公式で対応しちゃったけど
2017/08/06(日) 21:27:32.73ID:/dqOVGNE
>>716
そうだね
Objective-C=C+Objectiveだからな
2017/08/06(日) 21:33:58.82ID:/dqOVGNE
>>720
語弊を恐れずにいうとObjective-CのCはまったく別物でありながら同じでもあるといえると思う

正確にはCにまったく別の文法を使ってオブジェクト指向を純粋に足したものがObjective-C
2017/08/06(日) 21:36:01.59ID:/dqOVGNE
ああ、肝心なところtypoした
×Objective-CのC
○Objective-CとC
2017/08/06(日) 21:39:48.15ID:/dqOVGNE
>>718
確かに記事読むと表面的な話に終始してるな
Objective-Cはその他に類を見ない柔軟性により玄人指向なのだろう
逆に本当にスキルがある人には使いやすいんだろうなって思う
2017/08/06(日) 21:45:13.30ID:/dqOVGNE
>>721
まだCocoaが発展途上だった時代にCarbonとの親和性を確保する意味でもObjective-Cは都合がよかったんだろう
2017/08/06(日) 21:49:46.04ID:0XdHuxlK
>>721
骨幹から(?) C -+-> C++ -+-> Objective-C かな
KEXTはカーネルにすごい近いからカーネルと言ってもいいじゃんというまさしくそれに沿って別に簡単にフックできるから危ないからじゃなくてC++なんだろうという

いろいろなプラグインなんて、それこそ今でもハッキングや割れ(?)が簡単にやり放題にできるけどね。だが、いまだにそんなのが無いんだな、これが。まあサンドボックスやrootlessでやりづらくはなってはいるけど
んなとこから、IOKitがC++なのはObjective-Cが危ないからって話では無いだろうという俺論

>>723
一行で素晴らしいw彼もわかってくれればいいがw
2017/08/06(日) 22:07:37.99ID:5hrgPajG
>>720
>・純粋なCをやっているとObjC文法は素直に習得できる
の部分については、オブジェクト思考部分以外はCそのものなので、単純に追加されたオブジェクト思考部分を記述する文法さえ覚えればいいので、Cをやっていた人からすると習得コストが低いと言えるんじゃないかな
もちろんオブジェクト思考部分を記述する文法(=ObjC文法というのかな?)はCをやってた人からすると「変態的」なので最初は面食らった人がほとんどだと思うけど
ただやって実際見たらそんなに覚えることそんなにないじゃん的な感じかと
2017/08/07(月) 00:31:33.61ID:j1CBqyDH
>>727
いまだに無いって世間知らずにもほどがあるだろ?
appStoreに移行しても被害額減るどころか増えてるんだから
まあメソッド名隠さないで簡単に推理出来る名前のまま公開してる奴は擁護出来ないが
objcは簡単に中身を書き換えられる&覗かれるってことを理解した上で書いてないシェアウェアが多いよね

ただmac自体ユーザーが極端に少ないからそれらをやる人間も必要としている人間も少ないわけで目立たないだけだろう
SIMBLだって今後使えなくなったとしても同じプロセス上にロードするだけで良いだけだから
動的なリダイレクトが出来る今のobjcの設計ならいくらでもやりようはあるからな
カラーピッカープラグインでもロードされるタイミングでスウィズル出来るわけだし
ただ結局それらは個ソフトウェア内だけだからあまり問題視されてないのが現状だろう、結局エンジニア次第だからな

これがOSの根幹で出来るとなったらやばいどころじゃ無いのは簡単に想像出来るだろう
2017/08/07(月) 00:48:46.15ID:fzx+TAun
>>729
知らん。例えば具体的にどんな?ニュースになるような被害って?例え少ないのでもMac関係では大いに報道するだろ(アンチなのは妙に誇大にするからアレだがw)
あんな簡単に外部コードロード&フックできる仕組みなら、例えユーザ数が少なくたってある程度/かなりあっても不思議ではないだろ

別にObjective-Cに限らず、トロイにしろなんにしろ、なんでもできるのはそりゃそうだろ。そうじゃないと困るわ、生きづらいw
だからそもそもナニかする手段はあるって言ってるだろ。それが具体的に悪用されてるのがどんだけあるのかって話だよ
ネイティブコードが読み込まれるなら、Objective-CでなくてもMach-Oなプラグインだったら何でもできるだろうに、
なぜかObjective-Cだけ(危険/C++は安全??)とか、Objective-Cが簡単にフックできるからってのに捕らわれ、そうだからそうに違いないと言ってるだけにしか見えないな

そういえば、iOSは頑なに内製Framework(というか、dylib/別にObjective-Cなdylibでなくてもいろいろできる)を認めなかったが、
なんかいきなりあっさり認めるようになったな。お前の言っていることとは逆じゃね?より厳しいiOSでなのに
2017/08/07(月) 01:04:19.31ID:fzx+TAun
>>729
・コードをシステムなりに入れて起動できれば、そんなのObjective-Cだろうが他の言語だろうが関係ない、別のこと
・そのアプリの機能に介在するナニかをしたい場合にObjective-Cでフック機能が便利
・アプリの機能に関係なくなら、別にObjective-Cでなくても同じ危険性があるだけ
アプリの機能に介在してナニかあくどいすることなんてそもそもそんなありえるのか?関係なくの方が多いだろう。トロイ的にだが、その手法はあることはあるし

なんだかよくわからんが「これがOSの根幹で出来ると」いう、さもObjective-CでOSの根幹がありきのような話だが、そんなこと最初からないって言っているのがわからんのかなあ
アプリレベルプログラマでもCoreとかObjective-Cの同クラスより高機能なのが並列している時点で、
Objective-Cはアプリ/サービスレベルのフレームワーク用=OSの根幹でんなことしてられねえ(めんどくさいのだか何だかわからんがw)ってわかると思うだが、なぜかそこがObjective-Cであったらという前提はただの妄想にすぎないと思うよ
2017/08/07(月) 06:19:41.05ID:1ENgAefL
この流れがつまらない。
仮定の話で盛り上がるならオフ会でも行けば。
2017/08/07(月) 06:41:26.11ID:n0QtNiqf
物知らずの無知無知ボーイ ID:5hrgPajG が声高に頑張ってたせい。
2017/08/07(月) 07:26:00.83ID:nZ0RU5t+
「酔っ払いの喧嘩は外でやっとくれ!」
酔っ払いの一方:「あいつが悪いんだ!」
2017/08/07(月) 08:04:58.98ID:a1ES+HTw
>>733
は?関係なくね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況