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
探検
Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2014/11/01(土) 13:35:17.70ID:12FSUUrY
738デフォルトの名無しさん
2017/08/07(月) 10:43:49.21ID:GHOXhqb3739デフォルトの名無しさん
2017/08/07(月) 12:30:02.80ID:fzx+TAun740デフォルトの名無しさん
2017/08/07(月) 14:09:29.67ID:GHOXhqb3 >>739
マジレスっつーことは意図することはこういうことか
> 純粋なCをちゃんと使ってた人ほど文法がゴロっと変わるObjCは辛い、が当たり前のことでそれが誰かの失礼に当たる?
誰に何が失礼にあたるのか相変わらず分からないけど、共感してくれてるようで良かったよ
Cと同じじゃなきゃダメだって言ってるんじゃないよ、共感してくれてる通りCと違いすぎてるから純粋なCやってるとObjCが辛いって言ってるんだよ
マジレスっつーことは意図することはこういうことか
> 純粋なCをちゃんと使ってた人ほど文法がゴロっと変わるObjCは辛い、が当たり前のことでそれが誰かの失礼に当たる?
誰に何が失礼にあたるのか相変わらず分からないけど、共感してくれてるようで良かったよ
Cと同じじゃなきゃダメだって言ってるんじゃないよ、共感してくれてる通りCと違いすぎてるから純粋なCやってるとObjCが辛いって言ってるんだよ
741デフォルトの名無しさん
2017/08/07(月) 14:12:34.97ID:0r/N/mwc 218デフォルトの名無しさん (ワッチョイ 056c-cJAr)2017/08/07(月) 09:36:54.43ID:tO02o/C10>>221
>>212
メソッド呼び出しに、ドット構文が使えれば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
>>218
obj-cの魅力ってあくまでcの拡張でありobj-cの世界は[]の中だけってスタンスであってほしいから
ドット構文?はあんまり増やしてほしくない
個人的にはElixrのパイプ演算子(|>)をobj-cに採用して欲しい。
(元ネタはElixirじゃないかもしれないけど。)
[NSObject alloc] |> [@ init]
みたいな感じで使う。Elixirの場合だと返却値を次のメソッドの第一引数に渡すって意味だけどobj-cでは@を置き換えるみたいな感じで
ObjCユーザ的にはこういう構文変更はあり?
>>212
メソッド呼び出しに、ドット構文が使えれば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
>>218
obj-cの魅力ってあくまでcの拡張でありobj-cの世界は[]の中だけってスタンスであってほしいから
ドット構文?はあんまり増やしてほしくない
個人的にはElixrのパイプ演算子(|>)をobj-cに採用して欲しい。
(元ネタはElixirじゃないかもしれないけど。)
[NSObject alloc] |> [@ init]
みたいな感じで使う。Elixirの場合だと返却値を次のメソッドの第一引数に渡すって意味だけどobj-cでは@を置き換えるみたいな感じで
ObjCユーザ的にはこういう構文変更はあり?
742デフォルトの名無しさん
2017/08/07(月) 14:32:41.53ID:fzx+TAun >>740
理解はするが、全く共感はしない
見慣れない構文に戸惑うが、そりゃ違う部分だから当たり前だろ。「辛い」なんて全くわからん。見慣れない構文もよく使うのがほとんどだから直ぐに見慣れるだろうに、なにが辛いんだか??
理解はするが、全く共感はしない
見慣れない構文に戸惑うが、そりゃ違う部分だから当たり前だろ。「辛い」なんて全くわからん。見慣れない構文もよく使うのがほとんどだから直ぐに見慣れるだろうに、なにが辛いんだか??
743デフォルトの名無しさん
2017/08/07(月) 14:40:24.16ID:fzx+TAun >>740
ああ、なんかイミフでスルーしてたが、「失礼」って、俺が書いた「(失礼)」のことか??
だとしたら、お前にだよ。で、失礼の部分はそこじゃない。アホだなと思ったが、そう直球でいきなりアホ呼ばわりするのもっていう「アホって書くけど失礼」って意味
ああ、なんかイミフでスルーしてたが、「失礼」って、俺が書いた「(失礼)」のことか??
だとしたら、お前にだよ。で、失礼の部分はそこじゃない。アホだなと思ったが、そう直球でいきなりアホ呼ばわりするのもっていう「アホって書くけど失礼」って意味
744デフォルトの名無しさん
2017/08/07(月) 15:36:57.49ID:GHOXhqb3 >>742
うんうん、理解できたのは良いことだぞ
ObjC至上の宗教家っぽいし、共感できないのは信仰が違うから仕方ないんだろうね
流石に信仰を曲げてまで共感してくれとは思ってはないよ
ただ、お前さんが共感できないからってアホとなじるのはどうかと思うし
信者がそういう言動をする所もObjCがディスられる要因なんじゃないかな
うんうん、理解できたのは良いことだぞ
ObjC至上の宗教家っぽいし、共感できないのは信仰が違うから仕方ないんだろうね
流石に信仰を曲げてまで共感してくれとは思ってはないよ
ただ、お前さんが共感できないからってアホとなじるのはどうかと思うし
信者がそういう言動をする所もObjCがディスられる要因なんじゃないかな
745デフォルトの名無しさん
2017/08/07(月) 16:33:25.65ID:fzx+TAun なぜに上から目線?wwまあ、自己脳で完結してるのは知ってるからいいけど
宗教とか信仰とかただのアンチなのか?まあ、言いぶりからはお前は使っているっぽいのかなと思ったが、ちょっとやってみただけ(/やらされたのか?辛いらしいからw)が正解かな?
自分のモノにできてないのは確かのようだけど。で、やっぱ最初の俺のレスが正解か…ww なら続けた意味は、まあ、あったようななかったような
宗教とか信仰とかただのアンチなのか?まあ、言いぶりからはお前は使っているっぽいのかなと思ったが、ちょっとやってみただけ(/やらされたのか?辛いらしいからw)が正解かな?
自分のモノにできてないのは確かのようだけど。で、やっぱ最初の俺のレスが正解か…ww なら続けた意味は、まあ、あったようななかったような
746デフォルトの名無しさん
2017/08/07(月) 17:19:28.82ID:nZ0RU5t+ 中身がCの文法で書かれたモジュールを
Cの関数なんかじゃできなかったレベルで
取り回せるのが便利で評価されてる言語に
「そのCじゃない部分が嫌なのよね俺」とか
ここで口を開くレベルにも至ってなくて草ボウボウwww
Cの関数なんかじゃできなかったレベルで
取り回せるのが便利で評価されてる言語に
「そのCじゃない部分が嫌なのよね俺」とか
ここで口を開くレベルにも至ってなくて草ボウボウwww
747デフォルトの名無しさん
2017/08/07(月) 20:29:51.10ID:zWbONOmM >>741
既に出来なかったっけ?ドット構文
既に出来なかったっけ?ドット構文
748デフォルトの名無しさん
2017/08/07(月) 20:36:52.55ID:n9zFQLuH749デフォルトの名無しさん
2017/08/07(月) 21:11:50.86ID:zWbONOmM >>748
あーそうだね スマソ
あーそうだね スマソ
750デフォルトの名無しさん
2017/08/07(月) 21:19:43.31ID:n9zFQLuH >>741
それ。俺が書いたやつだけどマジで欲しいぞ。
https://github.com/ReactiveCocoa/ReactiveObjC
これとかみてくれればわかると思うけど。
ネストが深くなると凄く書きづらくなるし。Rxの学習をobjCで始めるとマジで辛い。
swiftはopensourceになって提案できるようになってるけど
objcにそういう仕組はないのかね
それ。俺が書いたやつだけどマジで欲しいぞ。
https://github.com/ReactiveCocoa/ReactiveObjC
これとかみてくれればわかると思うけど。
ネストが深くなると凄く書きづらくなるし。Rxの学習をobjCで始めるとマジで辛い。
swiftはopensourceになって提案できるようになってるけど
objcにそういう仕組はないのかね
751デフォルトの名無しさん
2017/08/08(火) 00:11:51.35ID:fmNB/sG0 >>750
たぶんこのスレで[ ]のネストについてなんか言ったところで暖簾に腕押しだと思うけど
たぶんこのスレで[ ]のネストについてなんか言ったところで暖簾に腕押しだと思うけど
752デフォルトの名無しさん
2017/08/08(火) 04:37:18.97ID:qCAzS5bX753デフォルトの名無しさん
2017/08/08(火) 09:10:19.12ID:qTxWRpQR メッセージ構文だろうがドット構文だろうがネスト数が多いこと自体が鬱陶しいだろ
どっちかっつぅとクラス設計の問題じゃないの
どっちかっつぅとクラス設計の問題じゃないの
754デフォルトの名無しさん
2017/08/08(火) 09:54:27.79ID:Apkyawzp >>753
Rxの概念的な都合によるものだから
どうしてもネストが深くなりがちなんだよね。
そもそもパイプが使えるとデバッグが楽だったりするし
ネスト構造でログを間にはさみたいときとかどうする?
結局ネストを壊して一時変数に途中経過を代入して出力するしかないでしょ?
メソッドチェーンなりパイプ演算子が使えると間に挟むだけになるから凄く
メンテナンス性が高い
Rxの概念的な都合によるものだから
どうしてもネストが深くなりがちなんだよね。
そもそもパイプが使えるとデバッグが楽だったりするし
ネスト構造でログを間にはさみたいときとかどうする?
結局ネストを壊して一時変数に途中経過を代入して出力するしかないでしょ?
メソッドチェーンなりパイプ演算子が使えると間に挟むだけになるから凄く
メンテナンス性が高い
755デフォルトの名無しさん
2017/08/08(火) 09:55:18.73ID:N1iCp3j/ >>753
Reactive Functional Programmingは必然的に多重ネストしちゃうが、
鬱陶しいとは、初めての意見だなぁ。
variable.asObserver()
.foo()
.bar()
.baz() {|cell|
// do something
// do something
}
これって、鬱陶しいかなぁ?
Reactive Functional Programmingは必然的に多重ネストしちゃうが、
鬱陶しいとは、初めての意見だなぁ。
variable.asObserver()
.foo()
.bar()
.baz() {|cell|
// do something
// do something
}
これって、鬱陶しいかなぁ?
756デフォルトの名無しさん
2017/08/08(火) 09:55:30.87ID:Apkyawzp757デフォルトの名無しさん
2017/08/08(火) 12:01:58.34ID:qTxWRpQR ドットでも[ ]でも大して変わらないって自分は思うってだけ
758デフォルトの名無しさん
2017/08/08(火) 12:24:05.02ID:qCAzS5bX [[[[variable asObserver] foo] bar] baz:^(id cell) {
// do something
// do something
}];
ふつくしい
// do something
// do something
}];
ふつくしい
759デフォルトの名無しさん
2017/08/08(火) 13:23:55.95ID:F28KTTfx >>757
そうとも言えるし、そうとも言えない
リアルに最近、(ちょっと)ん?と思った文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)
まあ、あんま変わんないかな
そうとも言えないにはイマイチだったか
そうとも言えるし、そうとも言えない
リアルに最近、(ちょっと)ん?と思った文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)
まあ、あんま変わんないかな
そうとも言えないにはイマイチだったか
760デフォルトの名無しさん
2017/08/08(火) 13:47:41.40ID:qTxWRpQR >>758
同じように改行でもインデントでもなんでもいれれば?
同じように改行でもインデントでもなんでもいれれば?
761デフォルトの名無しさん
2017/08/08(火) 14:36:01.22ID:qCAzS5bX Apple様のXcode自動インデントに任せて baz:^ の:の所に合わせてブロック文の中身はインデントを入るよ?
ブロック処理がコード上のすごい右側に行ってしまって
もうこの美しさと言ったらObjC/Xcode以外では中々に見ることが出来ないレベルだと思ってる
ブロック処理がコード上のすごい右側に行ってしまって
もうこの美しさと言ったらObjC/Xcode以外では中々に見ることが出来ないレベルだと思ってる
762デフォルトの名無しさん
2017/08/08(火) 14:44:47.05ID:F28KTTfx Apple様とか言ってるのはお前がだぞw
有るものを受け入れるに過ぎない&有るものをいかにどう使うかがお前や俺らのやること。それを使うというのはお前や俺らが自分で決めたことなんだから。それは別にAppleのに限らず
なんか自称開発経験長いようだが、よくそんな自分では解決できない不満満々でやってるなあ。その分他に使えばいいのに。全然長いように見えないな
有るものを受け入れるに過ぎない&有るものをいかにどう使うかがお前や俺らのやること。それを使うというのはお前や俺らが自分で決めたことなんだから。それは別にAppleのに限らず
なんか自称開発経験長いようだが、よくそんな自分では解決できない不満満々でやってるなあ。その分他に使えばいいのに。全然長いように見えないな
763デフォルトの名無しさん
2017/08/08(火) 15:38:18.31ID:taAceK/L 2個目以降のblocks引数のことだろ
1個目の左側と揃えた方がいいよ
1個目の左側と揃えた方がいいよ
764デフォルトの名無しさん
2017/08/08(火) 16:10:59.77ID:F28KTTfx デフォのフォーマットでは、2個目以降のblocksも引数のblock中身はインデントひとじゃね?
いくらあろうが右へ右へとは行かないよな??
いくらあろうが右へ右へとは行かないよな??
765デフォルトの名無しさん
2017/08/08(火) 16:22:42.51ID:taAceK/L インデントは2個目で止まる
だけどシグネチャがそもそも長いから右に寄りすぎるってのはある
1個目と同じで問題なさそうなのにね
まあ別にいいんだけど気になる点ではあるな
だけどシグネチャがそもそも長いから右に寄りすぎるってのはある
1個目と同じで問題なさそうなのにね
まあ別にいいんだけど気になる点ではあるな
766デフォルトの名無しさん
2017/08/08(火) 16:29:39.36ID:F28KTTfx そもそもデフォのフォーマットが気に入らないwから、自動補完後に整形するけど、自動補完中はTab(&click)とReturnで進めばBlockの中身分インデント一つだけのような/だけだけどなあ
2つになる場合がなんかあったかもしれないが補完後に整形するから忘れてるのかもしれないけど
2つになる場合がなんかあったかもしれないが補完後に整形するから忘れてるのかもしれないけど
767デフォルトの名無しさん
2017/08/09(水) 07:47:44.63ID:EM9uH4Ru768デフォルトの名無しさん
2017/08/09(水) 11:34:46.72ID:7tAKIt6P 提供された言語仕様をあるがままに受け入れられないヤツはObjCを使うな
769デフォルトの名無しさん
2017/08/09(水) 12:55:35.37ID:a8XvE339 「俺の馴染みのない表記が混ざってるのがキモチワルイ」言われても
評価してる側は「外への働きかけが表記分けで一目瞭然なのがイイネ」だから
話が平行線というか、
むしろ、最近の言語が(swiftみたいに)すぐにどのレベルの処理も
フラットにベターッと書くのを指向していて
それよく知られてるいつもの【ダメなやつ】なのになんで
あれやりたがる開発者多いのか…
評価してる側は「外への働きかけが表記分けで一目瞭然なのがイイネ」だから
話が平行線というか、
むしろ、最近の言語が(swiftみたいに)すぐにどのレベルの処理も
フラットにベターッと書くのを指向していて
それよく知られてるいつもの【ダメなやつ】なのになんで
あれやりたがる開発者多いのか…
770デフォルトの名無しさん
2017/08/09(水) 13:23:22.09ID:qPu9JyaP Obj-Cのラインは行頭に@という手もあるぞ
771デフォルトの名無しさん
2017/08/09(水) 13:28:37.05ID:mzNn5sYF [] はコストが関数呼び出しより高いことを明示してる感じでとても良いと思う。
772デフォルトの名無しさん
2017/08/09(水) 14:34:41.41ID:7tAKIt6P プロパティとかいうドット表記が問題なんだよな, 挙句にgetter/setterのメソッドに紐づいてるし
あれをObjCに取り込んだ害悪は誰だったんだろうね
あれをObjCに取り込んだ害悪は誰だったんだろうね
773デフォルトの名無しさん
2017/08/09(水) 14:53:43.66ID:ocU/hJiZ774デフォルトの名無しさん
2017/08/09(水) 15:10:08.58ID:7tAKIt6P 230デフォルトの名無しさん (ワッチョイ 056c-cJAr)2017/08/09(水) 14:56:18.93ID:ocU/hJiZ0
>>229
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
>>229
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
775デフォルトの名無しさん
2017/08/09(水) 15:10:17.60ID:qPu9JyaP プロパティじゃなくてもシグネチャ次第でドットにできるけどね
776デフォルトの名無しさん
2017/08/09(水) 15:15:27.76ID:qPu9JyaP あゲッターだけか
777デフォルトの名無しさん
2017/08/09(水) 15:47:05.07ID:ocU/hJiZ >>774
Lightweight Generics
って書いてあるね。
Swiftから呼べるObjective-Cコードは軽量版ジェネリクスってことか?
軽量版ジェネリクスかぁ。。。なんかグッと来る日本語無いかな?
Matzだって名前重要って言ってるし。
Lightweight Generics
って書いてあるね。
Swiftから呼べるObjective-Cコードは軽量版ジェネリクスってことか?
軽量版ジェネリクスかぁ。。。なんかグッと来る日本語無いかな?
Matzだって名前重要って言ってるし。
778デフォルトの名無しさん
2017/08/09(水) 18:10:30.11ID:m222t+F2 >>772
確かそもそもは、Cocoa Binding
Cocoa Binding(内で使う/に指定する)で メンバ(のメンバ?) の表記がドット。Cocoa Bindingとして対象は当然「プロパティ」という概念/名称になろう
この時点ではObjective-Cには property なんてなく、当然ドットもない。Cocoa Bindingがプロパティとして呼び出すのは単にセッター/ゲッター。セッター/ゲッターを量産する手段をObjective-Cには同時期かまたはちょっと後(それまでは、全部手でセッター/ゲッターを書く)
その後いろいろあって、今のに
なので、よくわからんが今やり始めてそう思うのは仕方がないのかもしれないが、無茶苦茶言ってるなてとこかなw
確かそもそもは、Cocoa Binding
Cocoa Binding(内で使う/に指定する)で メンバ(のメンバ?) の表記がドット。Cocoa Bindingとして対象は当然「プロパティ」という概念/名称になろう
この時点ではObjective-Cには property なんてなく、当然ドットもない。Cocoa Bindingがプロパティとして呼び出すのは単にセッター/ゲッター。セッター/ゲッターを量産する手段をObjective-Cには同時期かまたはちょっと後(それまでは、全部手でセッター/ゲッターを書く)
その後いろいろあって、今のに
なので、よくわからんが今やり始めてそう思うのは仕方がないのかもしれないが、無茶苦茶言ってるなてとこかなw
779デフォルトの名無しさん
2017/08/09(水) 18:46:53.08ID:P/9b8Th9 >>769
その【ダメなやつ】を最近もクラスプロパティの言語仕様追加で従来[ ]で呼び出してたものを.で呼び出すように推進してるからなぁ
言語仕様変えただけじゃなくご丁寧にCocoa, UIKitのフレームワークライブラリの実装まで修正してくれてるし
昔は【ダメなやつ】だったのかもしれんが、今は【イイやつ】になってると思うべきなんじゃねw
ObjCの言語仕様が追加されるのはいつものことだし、変わったものをモダンで良いものと思って追い続けないとやってけないよ
その【ダメなやつ】を最近もクラスプロパティの言語仕様追加で従来[ ]で呼び出してたものを.で呼び出すように推進してるからなぁ
言語仕様変えただけじゃなくご丁寧にCocoa, UIKitのフレームワークライブラリの実装まで修正してくれてるし
昔は【ダメなやつ】だったのかもしれんが、今は【イイやつ】になってると思うべきなんじゃねw
ObjCの言語仕様が追加されるのはいつものことだし、変わったものをモダンで良いものと思って追い続けないとやってけないよ
780デフォルトの名無しさん
2017/08/09(水) 18:55:51.12ID:P/9b8Th9 >>777
なんか誤解してそうだけどObjC単体でも使えるからな
ListやDictionaryなんかの一部コレクション系クラスの保持オブジェクトの型をコンパイル時チェックできるようになった
Java5の頃のジェネリクスと同じ感じだな, C++のTemplateみたいな使い方はできないがまぁ仕方あるまい
軽量"版"というからしょぼく見えるんだから軽量ジェネリクスでいいじゃん
コンパイル時間は多少伸びてるだろうが、実行時オーバーヘッドは0のはずだからな
なんか誤解してそうだけどObjC単体でも使えるからな
ListやDictionaryなんかの一部コレクション系クラスの保持オブジェクトの型をコンパイル時チェックできるようになった
Java5の頃のジェネリクスと同じ感じだな, C++のTemplateみたいな使い方はできないがまぁ仕方あるまい
軽量"版"というからしょぼく見えるんだから軽量ジェネリクスでいいじゃん
コンパイル時間は多少伸びてるだろうが、実行時オーバーヘッドは0のはずだからな
781デフォルトの名無しさん
2017/08/09(水) 19:35:58.41ID:eNfr2UIc782デフォルトの名無しさん
2017/08/09(水) 20:09:54.22ID:EM9uH4Ru783デフォルトの名無しさん
2017/08/09(水) 20:20:14.93ID:m222t+F2 >>781
あえてというか、必要性が無かったからだろう
Cocoa BindingでGetter/Setterをたくさん用意しなくてはならない/するのを強制されるのは確か。そういえばGetter/Setterの命名規則もこれのせいだったような(それ以前にあったかもしれないが「でなければならない」ではなかった)
オブジェクトに対しては、
ClassA *obj = …
(*obj).instaceVariable = …;
として、(たぶん)最初からあるけどなww(Cの構造体メンバアクセスとは確か「ちょっと」違う)
最初は構造体のと同じ表記なのに単なるメソッド呼び出しの置き換えとかキモかったなw
あえてというか、必要性が無かったからだろう
Cocoa BindingでGetter/Setterをたくさん用意しなくてはならない/するのを強制されるのは確か。そういえばGetter/Setterの命名規則もこれのせいだったような(それ以前にあったかもしれないが「でなければならない」ではなかった)
オブジェクトに対しては、
ClassA *obj = …
(*obj).instaceVariable = …;
として、(たぶん)最初からあるけどなww(Cの構造体メンバアクセスとは確か「ちょっと」違う)
最初は構造体のと同じ表記なのに単なるメソッド呼び出しの置き換えとかキモかったなw
784デフォルトの名無しさん
2017/08/09(水) 20:31:19.14ID:m222t+F2 >>783
>それ以前にあったかもしれないが「でなければならない」ではなかった
ちょっと違うな
それ以前にあったかもしれないがルールが明文化された
かな。ルールに基づかないのにもなのがsetter=/getter=の存在でもあるし
>それ以前にあったかもしれないが「でなければならない」ではなかった
ちょっと違うな
それ以前にあったかもしれないがルールが明文化された
かな。ルールに基づかないのにもなのがsetter=/getter=の存在でもあるし
785デフォルトの名無しさん
2017/08/09(水) 20:49:27.68ID:qqV2xE2N786デフォルトの名無しさん
2017/08/09(水) 20:57:44.83ID:P/9b8Th9 > オブジェクトに対しては、
> ClassA *obj = …
> (*obj).instaceVariable = …;
> として、(たぶん)最初からあるけどなww
最初からはねーよwww
ギリギリ->オペレータがあったくらいだわ
まぁその当時はC/C++を継承した->は【ダメなやつ】で[ ]のみが正義だったわけだが
> ClassA *obj = …
> (*obj).instaceVariable = …;
> として、(たぶん)最初からあるけどなww
最初からはねーよwww
ギリギリ->オペレータがあったくらいだわ
まぁその当時はC/C++を継承した->は【ダメなやつ】で[ ]のみが正義だったわけだが
787デフォルトの名無しさん
2017/08/09(水) 20:59:19.88ID:m222t+F2788デフォルトの名無しさん
2017/08/09(水) 21:01:34.46ID:m222t+F2789デフォルトの名無しさん
2017/08/09(水) 21:03:58.20ID:qPu9JyaP (*obj).foo も obj->foo も@publicじゃなきゃならんな
Cの構造体の構文に似せてあるが、シュガーだよ
Cの構造体の構文に似せてあるが、シュガーだよ
790デフォルトの名無しさん
2017/08/09(水) 21:15:38.13ID:m222t+F2 >>789
うん。まあ、単なる目に見えるメソッド置き換えよりも、なんか気分的な親和性があったというか
NSObjectの構造を見るとアクセスするのに単純にいかなさそうなんだけど、今はなんか簡単にやってやがるっぽくない?よく調べてないがコンパイルで吐くコードがなんか単純(以前のでの吐くコードがどんなんか知らんけど)
struct objc_class が OBJC2_UNAVAILABLE だから、Objective-C 2.0 で何か思いきったことやってんのかなあ?
うん。まあ、単なる目に見えるメソッド置き換えよりも、なんか気分的な親和性があったというか
NSObjectの構造を見るとアクセスするのに単純にいかなさそうなんだけど、今はなんか簡単にやってやがるっぽくない?よく調べてないがコンパイルで吐くコードがなんか単純(以前のでの吐くコードがどんなんか知らんけど)
struct objc_class が OBJC2_UNAVAILABLE だから、Objective-C 2.0 で何か思いきったことやってんのかなあ?
791デフォルトの名無しさん
2017/08/09(水) 21:51:51.46ID:m222t+F2 >>786
稼働可能状態な古いMac持ってる知り合いに聞いて試してもらったら、10.4では (*). はコンパイル&ランで問題ないって
10.0 から 10.3 の間かなあ?そんな別に無くてもいいもんwいつサポートするようになったか興味がちょっとあるなw(いつの話か教えてくれたら嬉しいな)
稼働可能状態な古いMac持ってる知り合いに聞いて試してもらったら、10.4では (*). はコンパイル&ランで問題ないって
10.0 から 10.3 の間かなあ?そんな別に無くてもいいもんwいつサポートするようになったか興味がちょっとあるなw(いつの話か教えてくれたら嬉しいな)
792デフォルトの名無しさん
2017/08/12(土) 07:30:10.75ID:qaUJfGjG 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なプロパティを使う
くらいです。
外部へはreadonlyプロパティとして公開し、内部向けにclass extentionにてreadwriteプロパティとして再定義したクラスがあります。
これを、swiftで使おうとしたところ、generated headerの中にこのプロパティ定義が作られない事に気付きました。(xcode 8.3.3)
多重定義を止めると、普通にプロパティ定義が作られます。
多重定義プロパティでのgenerated header不具合っぽいのですが、良い対処方法を教えてください。
思いつくのは
・Immutable classのサブクラスとしてmutable classを作り、そこでプロパティを再定義
・readwriteのpropertyを別名でclass extentionで定義しインスタンス変数を共有、内部からはwrなプロパティを使う
くらいです。
793デフォルトの名無しさん
2017/08/12(土) 12:13:53.23ID:dKEWL6WP こういうこと?
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にならないのは不具合ではなく仕様通りではないかと
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にならないのは不具合ではなく仕様通りではないかと
794デフォルトの名無しさん
2017/08/12(土) 12:32:23.62ID:qaUJfGjG いえ、公開したいのは、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
その場合、プロパティ自体が存在しない空の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
795デフォルトの名無しさん
2017/08/12(土) 13:46:56.49ID:dKEWL6WP 同一プロジェクト内で双方向のpublic getter, private setterはこんな感じでいけた
ttps://pastebin.com/2ckH2LeE
ライブラリプロジェクトでプロジェクトを跨る時はObjC側はBuild Phrases -> HeadersでHello.hをpublic設定して
Swift側は@objc public class HelloSwiftで宣言するんだったかな, @objc publicは最新で不要になってる気もする
多分、ライブラリプロジェクトについて話してるんではないだろうから、ここは意識する必要ないだろうけど
プリミティブ型じゃない時に何か特殊な障害があったかな・・・
ttps://pastebin.com/2ckH2LeE
ライブラリプロジェクトでプロジェクトを跨る時はObjC側はBuild Phrases -> HeadersでHello.hをpublic設定して
Swift側は@objc public class HelloSwiftで宣言するんだったかな, @objc publicは最新で不要になってる気もする
多分、ライブラリプロジェクトについて話してるんではないだろうから、ここは意識する必要ないだろうけど
プリミティブ型じゃない時に何か特殊な障害があったかな・・・
796デフォルトの名無しさん
2017/08/12(土) 14:18:44.04ID:2Yw2XYfL 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万台にならなくて済む
フリーランスで検索すると引っかかる零細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万台にならなくて済む
797デフォルトの名無しさん
2017/08/12(土) 15:21:17.11ID:3WtgEz9W その方法でまんま何も問題ないけど?
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 (なにかしているんだろうが、単なる参照用)
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 (なにかしているんだろうが、単なる参照用)
798デフォルトの名無しさん
2017/08/12(土) 15:26:34.38ID:3WtgEz9W799デフォルトの名無しさん
2017/08/12(土) 15:37:26.13ID:qaUJfGjG >>795,797
コメントありがとうございます。指摘通り、Generated interfaceの誤りですね。
今手元でこんな感じです。
ttp://i.imgur.com/D8CWZTP.jpg
上がCocoaアプリ、下がFrameworkに置いたものです。
いずれも、Generated I/Fの中に上書きしたプロパティが出てきません。
Xcode再インストールが先でしょうか?
コメントありがとうございます。指摘通り、Generated interfaceの誤りですね。
今手元でこんな感じです。
ttp://i.imgur.com/D8CWZTP.jpg
上がCocoaアプリ、下がFrameworkに置いたものです。
いずれも、Generated I/Fの中に上書きしたプロパティが出てきません。
Xcode再インストールが先でしょうか?
800デフォルトの名無しさん
2017/08/12(土) 15:52:20.34ID:3WtgEz9W >>799
絵が見えないー。何をやってるのか見えなーい
んー… Swiftで作ったクラスをObjective-CでがGenerateだと思うんだがな。HeaderとInterfaceの違いではなく…まあ、どうでもいいけど、Objective-Cで作ったクラスをSwiftででいいのね?
何やってるのか見えないのでなんともだが、とりあえず Product メニューの Clean(よりも、Option押しながらのClean Build Folder…)かな
絵が見えないー。何をやってるのか見えなーい
んー… Swiftで作ったクラスをObjective-CでがGenerateだと思うんだがな。HeaderとInterfaceの違いではなく…まあ、どうでもいいけど、Objective-Cで作ったクラスをSwiftででいいのね?
何やってるのか見えないのでなんともだが、とりあえず Product メニューの Clean(よりも、Option押しながらのClean Build Folder…)かな
801デフォルトの名無しさん
2017/08/12(土) 15:57:11.27ID:qaUJfGjG ttp://light.dotup.org/uploda/light.dotup.org471442.png.html
すみません貼り直します。
Obj-c => Swift が目標です。
すみません貼り直します。
Obj-c => Swift が目標です。
802デフォルトの名無しさん
2017/08/12(土) 16:09:41.21ID:3WtgEz9W >>801
ん??右端の Hello.h が generated header/Generated interface とやら?んなのいらんだろ??
単に、Bridge Header に、その左隣の Objective-C 用の Hello.c をインポートすればいいだけだろ??>>795さんのでいえば30から31行目、Hello-Bridging-Header.hというファイルに#import "Hello.h"を一行
Bridge Headerを使うようには設定でだが、Objective-Cのプロジェクトで最初にSwiftファイル作れば、「Bridge Headerつくるよ」とXcodeが勝手にやってくれるし、その後設定を確認してみればBridge Headerを使う設定がわかるだろう
ん??右端の Hello.h が generated header/Generated interface とやら?んなのいらんだろ??
単に、Bridge Header に、その左隣の Objective-C 用の Hello.c をインポートすればいいだけだろ??>>795さんのでいえば30から31行目、Hello-Bridging-Header.hというファイルに#import "Hello.h"を一行
Bridge Headerを使うようには設定でだが、Objective-Cのプロジェクトで最初にSwiftファイル作れば、「Bridge Headerつくるよ」とXcodeが勝手にやってくれるし、その後設定を確認してみればBridge Headerを使う設定がわかるだろう
803デフォルトの名無しさん
2017/08/12(土) 16:13:00.14ID:3WtgEz9W >>802
>勝手にやってくれる
Bridge Headerファイルの作成と、プロジェクトへのBridge Headerファイル登録と、ビルド設定ね
Swiftで使うクラスは、Bridge Headerに自分で記述する(単に#import "….h")
>勝手にやってくれる
Bridge Headerファイルの作成と、プロジェクトへのBridge Headerファイル登録と、ビルド設定ね
Swiftで使うクラスは、Bridge Headerに自分で記述する(単に#import "….h")
804デフォルトの名無しさん
2017/08/12(土) 16:22:45.31ID:3WtgEz9W >>802
すまん。ちょこちょこ間違えた
>その左隣の Objective-C 用の Hello.c
その左隣の Objective-C 用の Hello.h
>でいえば30から31行目
でいえば30から32行目
すまん。ちょこちょこ間違えた
>その左隣の Objective-C 用の Hello.c
その左隣の Objective-C 用の Hello.h
>でいえば30から31行目
でいえば30から32行目
805デフォルトの名無しさん
2017/08/12(土) 20:56:39.29ID:3WtgEz9W >>801
そういえば、(標準の)Frameworkは?ってのは、umbrella headerってのをFrameworkに仕込むらしい
それも、ヘッダーはそんなSwiftみたいなのではなく、単にObjective-Cのヘッダー(をSwift用にプリコンパイル(?)してモジュール化しての)
すると、Swiftで
import Foobar
ってだけで
そういえば、(標準の)Frameworkは?ってのは、umbrella headerってのをFrameworkに仕込むらしい
それも、ヘッダーはそんなSwiftみたいなのではなく、単にObjective-Cのヘッダー(をSwift用にプリコンパイル(?)してモジュール化しての)
すると、Swiftで
import Foobar
ってだけで
806デフォルトの名無しさん
2017/08/12(土) 21:33:48.50ID:3WtgEz9W >>805
ああ、umbrella headerって、Objective-Cでも/でのModulesのためのか。@importの。@importなんて忘れてたw
それの使用/流用か?@importはSwiftより1年先みたいだし
ああ、umbrella headerって、Objective-Cでも/でのModulesのためのか。@importの。@importなんて忘れてたw
それの使用/流用か?@importはSwiftより1年先みたいだし
807デフォルトの名無しさん
2017/08/12(土) 21:37:17.32ID:vLIuNhx/ 流用っていうかLLVMの機能
808デフォルトの名無しさん
2017/08/13(日) 11:30:09.68ID:TkYKFb/H 解決できてなさそうだから一式上げた
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 の所な
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 の所な
809デフォルトの名無しさん
2017/08/13(日) 14:47:06.11ID:XQniorI3 アンブレラヘッダって、Cでよくやる各モジュールのヘッダをincludeしてまとめてあるヘッダのこと
810デフォルトの名無しさん
2017/08/13(日) 16:13:58.67ID:OaUgUnZt iOSでアンブレラヘッダって出来るんだっけ
811デフォルトの名無しさん
2017/08/13(日) 16:17:13.40ID:XQniorI3 できるよ
.h作って必要なヘッダを#import
.h作って必要なヘッダを#import
812デフォルトの名無しさん
2017/08/13(日) 16:32:48.83ID:OaUgUnZt813デフォルトの名無しさん
2017/08/13(日) 17:27:14.87ID:GzzlNSce >>811
ごめん、アンブレラヘッダとアンブレラフレームワークと混同してた。frameworkも出来るみたい。
ごめん、アンブレラヘッダとアンブレラフレームワークと混同してた。frameworkも出来るみたい。
814デフォルトの名無しさん
2017/08/13(日) 19:08:50.09ID:3CTOgVkL 皆さんありがとうございます。
どうにもドツボにはまっているので、頂いたものを勉強し直します。
どうにもドツボにはまっているので、頂いたものを勉強し直します。
815デフォルトの名無しさん
2017/08/30(水) 09:43:22.83ID:thVvZo3p Xcodeのメジャーバージョンアップに合わせた言語仕様更新
ここ2年くらいないけどもうObjCの改善はやめたのかな
ここ2年くらいないけどもうObjCの改善はやめたのかな
816デフォルトの名無しさん
2017/08/30(水) 14:31:13.31ID:VdDjZJhL Xcode 8からクラスプロパティが入った。
Xcode 9はわからん。
仕様変更は正直いらないよ。新機能の追加だけで十分。
最近のObjective-Cの良いところは仕様変更が少ないことだと思う。
Swiftは変更しすぎでついていけない。
Xcode 9はわからん。
仕様変更は正直いらないよ。新機能の追加だけで十分。
最近のObjective-Cの良いところは仕様変更が少ないことだと思う。
Swiftは変更しすぎでついていけない。
817デフォルトの名無しさん
2017/08/30(水) 16:55:31.83ID:thVvZo3p そうか、クラスプロパティが去年だったか, 地味だから忘れてた
Xcode9は今出てるリリースノートの範疇を見るになさそうなんだよねぇ
最近のObjC下位互換破棄はGCの完全撤廃がXcode8であったような?誰も使ってないだろうけども
ObjCはシンタックスシュガー多いけど基本は残していくスタンスよな
Xcode9は今出てるリリースノートの範疇を見るになさそうなんだよねぇ
最近のObjC下位互換破棄はGCの完全撤廃がXcode8であったような?誰も使ってないだろうけども
ObjCはシンタックスシュガー多いけど基本は残していくスタンスよな
818デフォルトの名無しさん
2017/08/30(水) 18:53:05.49ID:OtY774nI >>816
ころころ仕様が変わったら何のデバッグしてるのかわからんからね
ころころ仕様が変わったら何のデバッグしてるのかわからんからね
819デフォルトの名無しさん
2017/08/31(木) 12:33:49.66ID:ELOqa+z/ Xcode9では言語仕様追加はないのか
毎年何らか追加してきてたし、ネタ切れってわけでもないだろうに、Swiftにリソース食われてるのかねぇ
Swiftはコミュニティにぶん投げて、AppleはObjCの言語仕様をアップデートしてくれよなぁ
毎年何らか追加してきてたし、ネタ切れってわけでもないだろうに、Swiftにリソース食われてるのかねぇ
Swiftはコミュニティにぶん投げて、AppleはObjCの言語仕様をアップデートしてくれよなぁ
820デフォルトの名無しさん
2017/08/31(木) 16:41:09.38ID:DmRL1EOk nullability にしろ generics にしろ、最近の変更は swift から obj-c を使いやすくするのに必要なものだったから、もうやることはあまり残ってなさそう
821デフォルトの名無しさん
2017/09/01(金) 09:02:41.01ID:YXmfUhFy autoキーワードのデフォルト有効化はよ
ObjC++(.mm)にすれば良いんだけどなんか違う、idをautoの代わりに使うのはもっと違う
ObjC++(.mm)にすれば良いんだけどなんか違う、idをautoの代わりに使うのはもっと違う
822デフォルトの名無しさん
2017/09/01(金) 10:47:18.17ID:B8cKPTM5 C++17も出るし、C++14, 17の新規機能のポーティングが始まるんじゃね?今年はもう間に合わんだろうけど
clangとしてC++17は進めてるんだろうから、いつものように文法糖衣してObjCに突っ込むだろ
clangとしてC++17は進めてるんだろうから、いつものように文法糖衣してObjCに突っ込むだろ
823デフォルトの名無しさん
2017/09/01(金) 11:18:48.86ID:ZEZMvH77 いっそのことObjective-C++使おうかな。
C++の仕様を部分的にポーティングしてくれるならそれもいいけど。
@autoみたいな記法は流石に勘弁だけど。
C++の仕様を部分的にポーティングしてくれるならそれもいいけど。
@autoみたいな記法は流石に勘弁だけど。
824デフォルトの名無しさん
2017/09/01(金) 12:05:12.13ID:pDFuyP/L ObjC++はコンパイル遅い。
825デフォルトの名無しさん
2017/09/01(金) 17:48:15.95ID:Ev7WXpGx ObjC++だとリファクタリング効かないから大変。
あれ何とかならないかなぁ。
あれ何とかならないかなぁ。
826デフォルトの名無しさん
2017/09/01(金) 18:21:04.93ID:5JXRZXNo C++はコンパイル速度より実行時速度に重きを置いてるから仕方ないね
ObjC++でTemplateが使えたら幸せなんだけどなぁ
常時Dynamic Dispatchで実行速度が遅いObjC環境でTemplate使った速度改善なんて滑稽な話ではあるが
ObjC++でTemplateが使えたら幸せなんだけどなぁ
常時Dynamic Dispatchで実行速度が遅いObjC環境でTemplate使った速度改善なんて滑稽な話ではあるが
827デフォルトの名無しさん
2017/09/01(金) 22:21:55.44ID:5GGRc0ni >実行速度が遅い
それが問題になるほどの崇高なプログラムを組んでらっしゃるのかな
それが問題になるほどの崇高なプログラムを組んでらっしゃるのかな
828デフォルトの名無しさん
2017/09/01(金) 22:30:27.59ID:shKG9pre そういう人はいくらでもいるでしょ
829デフォルトの名無しさん
2017/09/01(金) 22:34:33.64ID:zaPu8SCI 計算物理学とか処理速度は常に足を引っ張ってくるからね
830デフォルトの名無しさん
2017/09/01(金) 22:44:52.87ID:pDFuyP/L ObjC++ってC++で書かれたコア部分をラッピングするための装置。
831デフォルトの名無しさん
2017/09/01(金) 23:03:50.42ID:5BLkbp3y > ObjC++はコンパイル遅い。
これが問題になる人よりは多いでしょ, コンパイル速度より実行速度を気するわな
ObjC++はC++の機能を使うための装置でもあるがな
auto以外にもモダンな機能が使えるからModern Objective-Cがモダンじゃないと感じ始めたら使うのも一興
性能良くてモダンな機能が使えるObjC++はイイゾー
これが問題になる人よりは多いでしょ, コンパイル速度より実行速度を気するわな
ObjC++はC++の機能を使うための装置でもあるがな
auto以外にもモダンな機能が使えるからModern Objective-Cがモダンじゃないと感じ始めたら使うのも一興
性能良くてモダンな機能が使えるObjC++はイイゾー
832デフォルトの名無しさん
2017/09/01(金) 23:45:22.97ID:ZEZMvH77 コンパイル遅くなるって具体的にどんなケースなの?
既存のobjcソースをobjc++としてコンパイルする程度ならほとんど変わらなそうだけど。
autoやメンバー関数なんかの簡単な機能使う程度なら十分お釣りが来る気がする。
既存のobjcソースをobjc++としてコンパイルする程度ならほとんど変わらなそうだけど。
autoやメンバー関数なんかの簡単な機能使う程度なら十分お釣りが来る気がする。
833デフォルトの名無しさん
2017/09/02(土) 10:48:43.59ID:u5MjsaOO モダン、モダンうるせーよw
モダンであることが目的になってねーか?おまえら
モダンであることが目的になってねーか?おまえら
834デフォルトの名無しさん
2017/09/02(土) 12:06:13.00ID:qBo532qK ものによっちゃあクラシックよりは良いだろうな
835デフォルトの名無しさん
2017/09/02(土) 18:57:24.45ID:AHW4eZK5 >>832
- (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];だけを比較したら
型推論使った方が両辺の型一致を判定する必要ない分だけ早くなり得ると思う
- (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];だけを比較したら
型推論使った方が両辺の型一致を判定する必要ない分だけ早くなり得ると思う
836デフォルトの名無しさん
2017/09/02(土) 19:14:40.76ID:Qzt2A3g3 マヌケっぽいけどイ`
837デフォルトの名無しさん
2017/09/02(土) 20:19:08.25ID:GaaWhR7c C++の型推論は戻り値型が確定していればその場でNSNumber *に置き換えてくれるんじゃね?
よほど変なコード書かない限りコンパイル速度が問題になることは無いだろう。
Xcodeはデフォルトでプリコンパイルしてくれるし、C++でもやってくれるでしょ。
よほど変なコード書かない限りコンパイル速度が問題になることは無いだろう。
Xcodeはデフォルトでプリコンパイルしてくれるし、C++でもやってくれるでしょ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- クリスマスの「予定なし」54% [少考さん★]
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 日銀0.75%に利上げへ、30年ぶりの水準に 19日金融政策決定会合 [蚤の市★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★4
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★5
- フィンランド人国会議員「つり目はアジア人差別じゃない!!」と擁護投稿開始 [469534301]
- ばっかもーん、そいつが
- 【画像】ワイのチンコ、デカすぎて345歳の姪を泣かせてしまう…😭
- 茶ぁしばこうや··· ( ¨̮ )︎︎𖠚ᐝ2
