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
2016/11/18(金) 00:08:47.34ID:QxITf25H
>>570
セレクタはメソッド呼び出しで必要>>569
IMPで関数呼び出しの場合はランタイムを経由しないので不要
しかしどちらもシグネチャは共通なので(id, SEL, …)ということ
2016/11/18(金) 02:19:58.76ID:QxITf25H
>>570
ちなみにこれでも動作する。id,SELは渡してない。

void(*f)(void) = [ViewController instanceMethodForSelector:@selector(hoge)];
f();

- (void)hoge
{
NSLog(@"%@", NSStringFromSelector(_cmd));
}

SELを渡してないので null と出力される
idも渡してないので、hoge内でselfにアクセスすると落ちる。
2016/11/18(金) 08:55:20.76ID:1f4/DDXi
なるほどこれはわかりやすい
574デフォルトの名無しさん
垢版 |
2016/11/18(金) 09:33:05.33ID:sBZu/NEl
BathyScapheっていう2ch Viewer使ってます。
>>559
みたいな画像をuploadするにはどうすればいいっすか?

2chのサイトではdrawツールがブラウザ内にあって、それで落書きはできるみたいですが、pngとかgif画像をuploadしたいのです。
2016/11/18(金) 11:55:15.19ID:U2qFJJrM
>>574
素の落書きツールは かなり使い勝手が悪いので
自作の Geasemonkeyスクリプト(for Firefox)使ってます。
2016/11/18(金) 11:57:16.56ID:U2qFJJrM
まあ、すぐにサイズオーバーになるのでごく簡単な絵しかアップできません。
2016/11/18(金) 12:14:37.99ID:8cb+/Ta9
消せないから気軽にあげられないのがちょっとあれよね
プログラム板なんだから自分で書けば良いよ
てことでobjcで書いてみた
サイズの頭打ちがあるからと思ってインデックスカラーに圧縮したけど弾かれるのね
2016/11/18(金) 12:22:18.47ID:U2qFJJrM
IMP関数ポインタの SELパラメターの件
正直言うと、自分にはコメの意見の善し悪しを判断する能力ありません...。
ググるとこれ使って >>559 で書いたような事ができるようですが (参考:class_addMethod)
設計側はそういう用途まで考慮していたのかは、よく分かりませんでした。
シグネチャを共通にしたかった? どうなんでしょう、それって何か気持ちいいから以上の理由はあるんですかね。
2016/11/18(金) 12:39:28.44ID:QxITf25H
>>578
シグネチャが共通というより、同一の関数なので同じシグネチャなんですよ。
ランタイムが呼ぶメソッドの実体も、IMPを取得してダイレクトに呼ぶ関数も、「同じ関数」です。
その関数の引数が (id, SEL, …) なんですね。
2016/11/18(金) 12:42:31.61ID:QxITf25H
で、自分はIMPは使いません。
IMPを使うくらいならCの関数を書けばいいだけなので。
2016/11/18(金) 12:51:34.13ID:QxITf25H
Objective-Cは、以前はメソッド呼び出しのオーバーヘッドがネックになってたようなので、
IMPのAPIは、既存クラスのメソッドを高速に呼び出すために作ったんじゃないですかね。
582デフォルトの名無しさん
垢版 |
2016/11/18(金) 13:05:14.30ID:sBZu/NEl
>>576
いやぁ、うれしい。
秘伝のテクを開陳してくれて、あんがとう。

けど、JavaSou苦手なんすよねぇ。
tarea(text area)を取得して、その直前にinput, script要素を挿入してinputボタンの押下で
foo関数を呼ぶ様にしてるって事みたい。

FireFoxもGeasemonkeyも使った事無いっす。
Safari, Chromeでも同じ事できるんでしょうか?
Geasemonkey for Safari, Chromeを探せって事なんすね。

いま、WKWebViewでもloadしたhtml, cssを書き換えられないか?調べてます。
Geasemonkey likeな動作をどうやってさせようかと!
2016/11/18(金) 21:20:02.14ID:U2qFJJrM
ObjCスレだからObjCで頑張るのはアリかもしれませんけど、物事には適材適所ってもんがあるとおも...。
2016/11/19(土) 03:19:56.84ID:vr8hDAX5
適材適所かどうかは自明ではないね
2016/11/26(土) 10:43:02.50ID:EbyefIsj
みんなSwiftに移行しちゃったの?
Swift始めた頃、小さな仕様がコロコロ変わるからObj-Cに戻ってきてたけど
もう安定したのかな。
586デフォルトの名無しさん
垢版 |
2016/11/28(月) 16:59:47.56ID:AK2eqXeC
>>585
Swift3でメソッド名の整理が行われて、短くなった。
"Taylor".writeToFile("filename", atomically: true, encoding: NSUTF8StringEncoding)

"Taylor".write(toFile: "somefile", atomically: true, encoding: String.Encoding.utf8)

上2.3/下3

Swift3が良さげに見えるのでObj-Cからの移行者がボチボチ増えてるかも。
2016/11/30(水) 23:57:30.93ID:48Nf+yqm
>>585
殊Swiftにおいて仕様が安定することはまだしばらくないだろう
Swift5くらいじゃね?安定版は
588デフォルトの名無しさん
垢版 |
2016/12/01(木) 09:30:20.02ID:RHRo1hP4
コンパイラとしての安定性は最初から問題無いんじゃない?
コンパイラが原因でアプリが落ちるっては経験無いなぁ。

C++、Javaが最近仕様変更が激しいのと同じく、Swiftだって言語仕様変更があるって事で、コンパイラとしては安定してると思う。

例:C++TR1, C++11, C++14
JavaSE6, 7, 8, 9

Swift3の言語仕様変更は、現在アナウンスされてないんじゃないのか?Swift4ってのはABIの導入って事で、言語仕様の変更じゃ無いし。
2016/12/01(木) 12:10:25.84ID:5zfWITAP
ぬるぽで落ちてもコンパイラのせいです(kr
590デフォルトの名無しさん
垢版 |
2016/12/01(木) 12:43:47.19ID:RHRo1hP4
>>589
それは、nil guardしてないコードのせい!
591デフォルトの名無しさん
垢版 |
2016/12/01(木) 17:17:16.90ID:ODvXgIax
 
キチガイの集まり・創価学会・公明党!

人殺しの殺人鬼が政治活動・創価学会・公明党!

池田大作・人殺しの殺人鬼・創価学会・公明党!

あやかりドチンピラの池田糞作・創価学会・公明党!
592デフォルトの名無しさん
垢版 |
2016/12/02(金) 10:10:54.60ID:84dQUHiS
禁止語句、に追加すれば、見なくてすむよ!
2016/12/03(土) 14:45:44.29ID:rA9b0IH0
孔明党ならゆるされるのだろうか?

仲達「ゆるさないぞ!」
2016/12/07(水) 10:42:29.07ID:iWjUJEoY
メッセージをたくさん送る時、[[[なるじゃん?
みなさんどう打ってます?Xcodeに自動補完とかあるの?
595デフォルトの名無しさん
垢版 |
2016/12/07(水) 11:09:26.74ID:lAZ4q7Te
>>594
適当に打って、あとから余計なのを消す。
余計を検出するのは、XVimの%コマンドを使う。

matchitとかっていうpluginをterminal.appで使うって手もある。
2016/12/07(水) 12:37:41.63ID:YlvsrELD
>>594
]を打ったら状況に応じて勝手に[を入れてくれるよ
入れる場所を間違えてエラーになる事もあるけど
2016/12/07(水) 15:21:19.56ID:iWjUJEoY
ありがとうございます!
SwiftからCocoaプログラミングを始めて、その背景を知りたかったのでObjective-Cをちょこっと調べてました。
そこで、気になって質問しました^_^
598デフォルトの名無しさん
垢版 |
2016/12/07(水) 15:35:56.63ID:lAZ4q7Te
>>597
俺と同じパターンだね。
Objective-Cのサンプルを読む事もあるしね。
Swift -> Objective-Cって人も最近は居るだろうね。

Swift3からObjective-Cを見ると、冗長な部分が目立ってしまう。
例:
obj-c: dissmissViewControllerAnimated: complition
swift3: dismiss#animated:

Objective-Cはコンパイル早いっていうメリットがあるけどね。
2016/12/07(水) 15:48:24.59ID:iWjUJEoY
>>598
そうですか!
言語は新旧ありますが、ロジックやフレームワーク自体に優劣がある訳ではないので、Objective-Cが読めるとプラスですよね
600デフォルトの名無しさん
垢版 |
2016/12/07(水) 16:09:27.53ID:lAZ4q7Te
>>599
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する
2016/12/09(金) 00:46:26.18ID:68yJ6/bb
>>596
メッセージ呼び出しの自動補完はifの周りが割と鬼門だよね、式の解析が一部混乱してる感じ
くっころさんになることたまにある。
2016/12/15(木) 13:46:48.92ID:7KRIzock
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
2016/12/16(金) 09:51:52.86ID:6vWCzpx7
Bool areInst(int thing1, int thing2)
{
return(thing1 - thing2)
}
これ、YESかNOが返されるんだけど
0か1が返ってくるには、どうすればいい?
604デフォルトの名無しさん
垢版 |
2016/12/16(金) 10:15:26.25ID:OzPYYpv3
>>603
if YES {
return 1
} else {
return 0
}
2017/02/14(火) 17:11:03.02ID:qY2M4Y7r
aac→pcmの変換について教えて。
ネット上のファイルからaacのデータ取ってきて、
1.AudioFileStreamにデータ食わせてAudioFileStreamPropertyListenerProcを受けてからASBDを取得。
2.1.のASBDをAudioConverterのインプットに設定。アウトプットはAudioUnitのインプットと同じ設定。
3.AudioConverterFillComplexBufferを呼び出してAudioConverterComplexInputDataProcのコールバックで、AudioFileStreamPacketsProcで通知されたデータを渡す。
という流れでデータを処理してるんだけどいくつかのコンテンツでAudioConverterFillComplexBufferがエラー(1852797029)で帰ってくるんたが理由がわからん。何でかわかる?
606デフォルトの名無しさん
垢版 |
2017/02/22(水) 21:35:58.65ID:bVPEWVD2
http://video.fc2.com/content/20170222aQ2BSKaX
2017/02/24(金) 09:40:08.04ID:hWTo6NC+
>>605
解決した。データが微妙におかしかった。
608デフォルトの名無しさん
垢版 |
2017/07/09(日) 12:41:36.82ID:GCKhJDjB
gfortranでコンパイルしたfortran subroutineをObjCから呼べますか?
2017/07/09(日) 17:45:16.59ID:8iS3GcZb
Objective-CというかCからで、gcc(gfortran)はCへのインターフェースを用意してるし、gccといえどもプラットフォームOSのオブジェクトを吐き出すんだから、clangでのオブジェクトとつーかーでリンクできるから呼べるだろ
2017/07/09(日) 19:25:46.94ID:XPzyjd3D
Cでできることはすべてできる
そう、Objective-Cならね
611デフォルトの名無しさん
垢版 |
2017/07/09(日) 19:30:40.19ID:GCKhJDjB
gfortran -c test.f
をコンパイルしてtest.oを得たとします。test.fに入ったsubroutineをObjCのmain.mから呼ぶことができますか?
clang main.m test.o -framework Foundation -o a.out
こうやってコンパイルできるのでしょうか?
調べると、binary compatibilityがあるよ!って話がヒットします。
2017/07/09(日) 19:47:18.04ID:8iS3GcZb
コンパイルというかリンクできるかリンカーのお仕事
リンカーの理解できるオブジェクトはGCCでも排出できる。言語の違いはCのインターフェースで共通。なのでできるだろ
やってみろよwやってできなかったらこっちで検証してみてやるよ(えらそうw)
2017/08/04(金) 11:02:58.83ID:Xk8/NaTI
swfit4も結構変更があるみたいだね。

swift5もでるみたいだし、objcでいいや
614デフォルトの名無しさん
垢版 |
2017/08/04(金) 11:16:18.04ID:PF1N3/4o
>>613
ObjCで作るiOSアプリの方が、Swiftのそれよりキビキビ動く印象があるけど、
どうなんでしょうか?
2017/08/04(金) 12:00:05.92ID:CVNSY5Yd
今まで通りObjective-Cでは困らないんだよね..
2017/08/04(金) 13:36:11.66ID:ZGf6UrbU
もう俺kotlinのiosサポート待ちなんだが
2017/08/04(金) 17:00:30.23ID:Xk8/NaTI
XcodeProjAdder
2017/08/05(土) 09:11:30.54ID:AGcDSNVp
結局Objective-Cがなんだかんだ柔軟性があって使いやすい
2017/08/05(土) 09:30:13.70ID:ocnuRu9M
Objective-Cをディスってるやつらが理解できないな
C言語使ったことないのかね
2017/08/05(土) 09:53:25.64ID:t7RO58+g
Cをと言ったら老害扱いするヤツもいるからなw
2017/08/05(土) 10:41:10.52ID:XESdgnCd
Cを使ってたから[インスタンス メソッド:引数 キーワード:引数]の冗長になる表記が鬱陶しかった
ObjCを絶賛してる奴らはC言語を使ったことないのかね、とは思う

しかし、最近追加された_Nullable, _Nonnullはどうにかならんものかのう
アンダーバー一つなのと大文字で始めるのが気に入らねぇ、nullable, nonnullだけにできなかったものか
Apple様がサードパーティライブラリなんて気にしてるんじゃねぇよ
622デフォルトの名無しさん
垢版 |
2017/08/05(土) 12:50:06.76ID:x2WXXz7r
>>621
#defineマクロ使ってnullableって書けば良いじゃん。
623デフォルトの名無しさん
垢版 |
2017/08/05(土) 12:59:54.68ID:x2WXXz7r
#define nullable _Nullable
2017/08/05(土) 15:28:20.27ID:AGcDSNVp
>>621
わろた
まあ、そのメッセージ記法は最初見たときはその変態的な表記方法に非常に面食らった
なんせその[や]を使うのは配列だと決まっていたからな

でもとりあえず使っているうちに、Cの関数表記とObjectiveな部分が非常にわかりやすく共存できるという事実に気づいたとき一気に好きになったのを思い出した
2017/08/05(土) 15:30:37.83ID:Xkpybudy
この言語完全にオワコン
2017/08/05(土) 15:31:16.18ID:AGcDSNVp
>>625
Swift使ってればいいと思うよ
2017/08/05(土) 15:35:09.48ID:v6ezSTSe
>>622
>>623
まあ言い方悪いけど所詮Cだからどうとでもなるよな
それがObjective-Cのよさでもあるけど
2017/08/05(土) 16:01:05.93ID:QC2awpIr
どうとでもなることはどうでもいいんだよ
一度__nullableで切っておいて、サードパーティライブラリと競合するから_Nullableにするわって仕様変更した上に
_Nullableとnullableをダブルスタンダードで生かす仕様としていることが可笑しいんだよ

昔のAppleなら__nullableを残したままnullableがモダンだからってnullableの利用を推してたと思うんだけどなぁ
__nullableから_Nullableへの仕様変更とか訳わからんことするのは、やっぱりジョブズがいなくなった弊害か
2017/08/05(土) 16:09:21.82ID:UQl/9zAR
定期的に「変態表記だから〜」って人が湧くけれど
わけのわからん重箱的なとこにいちゃもんつけてる人は
だいたい不満を持ってるのは本人が言ってるそこではないのが普通なので
すると、どこだ?って発言を追った時に透けてくるのが
「メッセージングが気に入らない」で
これ結局オブジェクト指向なんて〜おじさんなんじゃwwwとw
2017/08/05(土) 16:25:52.03ID:AGcDSNVp
>>629
メッセージングとはいっても結局事実上メソッド呼び出しとなんら変わらんからな
2017/08/05(土) 16:56:54.30ID:QC2awpIr
[や]は重箱的じゃなく大局的な表記の問題だと思うんだけど、それは・・・
そして、_NullableはObjC変態表記を問題視してるんじゃないよ、Appleのスタンスを問題視してるんだよ

「メッセージングが気に入らない」はDynamic Dispatchなのが嫌なんでない?
事実上はコストが上乗せされる別処理になってるわけだし
# アンチObjCもObjC信者もそこまで考えてない気がしなくもない
2017/08/05(土) 17:27:05.60ID:GxOZ02Sj
[r method:x label:y];
func(r, x, y);
2017/08/05(土) 17:31:27.19ID:GxOZ02Sj
r.func(label:x, label:y)
2017/08/05(土) 18:04:47.25ID:AGcDSNVp
>>631
Dynamic DispatchはObjective-Cの話に限らないのでなんとも...

nullableについては表面的なモダンさを表面的に考えて追求する雰囲気がSwiftが出だしたくらいから社内で蔓延してるからじゃないの
社員じゃないから知らんけど

>>632
>>633
だからSwift使ってればいいと思うの
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>とか使うんだろうけど。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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