[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/01 18:42 / Filesize : 287 KB / Number-of Response : 1028
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Objective-C [ObjC part:8.1];



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

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...






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<287KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef