トップページ⇒tech
1002コメント350KB

Swift part8 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net (アウアウ Saaf-caug)2016/05/13(金) 23:30:06.87ID:MRCJQvHca
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift 3
http://potato.2ch.net/test/read.cgi/mac/1408762479/

[SDK]iPhoneアプリ開発初心者質問箱45[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1447650023/

Xcode part13 [転載禁止]c2ch.net
http://potato.2ch.net/test/read.cgi/mac/1424907278/

Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/

前スレ
Swift part7
http://echo.2ch.net/test/read.cgi/tech/1458491528/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0002デフォルトの名無しさん (ワッチョイ 575b-xbWL)2016/05/14(土) 00:37:32.29ID:krJ+c2Ja0
>>1
乙
0003デフォルトの名無しさん (ササクッテロ Sp2f-/3cR)2016/05/14(土) 02:55:22.49ID:GxUqhDLJp
ツラっとワッチョイ入れてんな
まぁいいけど

おつ
0004デフォルトの名無しさん (ササクッテロ Sp2f-a45h)2016/05/14(土) 07:52:48.89ID:nrdeB4h9p
>>1
おっつー
0005デフォルトの名無しさん (ワッチョイ 237b-k05Y)2016/05/14(土) 09:53:12.28ID:d9qQJlpp0
アンチスレpart1から進んでないじゃないか
もっとアンチ頑張れよ。
0006デフォルトの名無しさん (アウアウ Saff-k05Y)2016/05/14(土) 10:26:33.58ID:+RC1y14qa
まぁ、叩くとこほとんどない言語だからな
0007デフォルトの名無しさん (ワッチョイ 033c-Wsqh)2016/05/14(土) 15:53:33.39ID:17u/9PWU0
コードをObjective-CからSwiftに変えることで80%のステップ数削減に成功し、
Swiftバージョン追従のために、20%のステップのコードを毎回書き直した

一方、世界はAndroidに乗り換えた
0008デフォルトの名無しさん (ワッチョイ 237b-k05Y)2016/05/14(土) 16:34:46.02ID:d9qQJlpp0
確かにiOSとかAndroidとかの差は一般人にはほとんどわからなくなったよな。
両方をちゃんと比較すればそりゃ違うけど。LineとかFacebookを使うだけの
一般人には同じだよね。(ブランドが違うだけ)

次くるとしたら音声認識インターフェースかね。
siriからアプリが制御できるようになれば結構iOS優位に再び立てそうな気がするんだけど、amazonが実は先行してたりして。
開発側にとっても画面デザインを気にしなくても作れるようになるし
有難そう。appleWatchも使えるようになるし。
スレ違いすまそ
0009デフォルトの名無しさん (ササクッテロ Sp2f-/3cR)2016/05/14(土) 22:10:58.07ID:vzw8qrC9p
スレ違いに付き合うとAndroid Wearが音声入力サポートしてるからWWDCで watch OS の新機能で発表するんじゃね
AmazonもEcho出してるし、Appleはいつも通り後手後手

Swift使えば音声入力で watchOS, iOS, tvOS, Mac OSがこのように連携します(ドヤァを祈ろうか
0010デフォルトの名無しさん (アウアウ Saff-1veL)2016/05/15(日) 16:54:38.62ID:mmUqK5Raa
Swiftはnullを超えた負債になる
C#がベスト
0011デフォルトの名無しさん (アウアウ Saff-k05Y)2016/05/15(日) 16:56:39.53ID:Sb7UYY6Ka
C#は.netありきだからなぁ
0012デフォルトの名無しさん (ササクッテロ Sp2f-1veL)2016/05/15(日) 17:55:33.20ID:lZb2kboCp
Swiftはありえん
0013デフォルトの名無しさん (アウアウ Saff-k05Y)2016/05/15(日) 17:59:33.66ID:Sb7UYY6Ka
>>12
なぜこのスレをヲチしてるの?
0014デフォルトの名無しさん (ワッチョイ 237b-k05Y)2016/05/15(日) 20:10:23.41ID:jf4/vLKx0
>>11
Xamarinはどうなんだろ。iOSとAndroid開発環境見てると
iOSはUIkitとかでUIライブラリは充実してるけど、
Androidの方がよりフレームワークよりな感じがする。
R.XXでリソースIDを補完できたりとか
Loaderの機能でリアクティブな環境を最初から作れる感じ。

Xamarinはどっちに寄せてんだろ。
0015デフォルトの名無しさん (ササクッテロ Sp2f-/3cR)2016/05/15(日) 20:12:06.23ID:cejQYZiFp
Xamarinスレいけ、クズ
いつまでステマ続ければ気が済むんだい?
0016デフォルトの名無しさん (ワッチョイ 27c9-19i7)2016/05/16(月) 07:58:54.17ID:ugQT3y5U0
Xamarin厨はお黙りん

なんつって
0017デフォルトの名無しさん (ワッチョイ 237b-k05Y)2016/05/16(月) 10:04:40.03ID:n2wuXq4U0
swiftで書かれてるオープンソースなプロダクトってなんか無いかな?
UIKitの使い方とかswiftの使い方知っても
プロジェクトとして綺麗な書き方ってのがなかなか身につかなくて悩んでるんすよ。
なんかないすか?
0018デフォルトの名無しさん (ワッチョイ 033c-caug)2016/05/16(月) 10:21:55.84ID:DCK0MW+Q0
>>17
Nukeとかどう?
0019デフォルトの名無しさん (ササクッテロ Sp2f-k05Y)2016/05/16(月) 10:38:02.16ID:anWwAKnOp
Githubにいっぱいあるじゃねーか
0020デフォルトの名無しさん (ササクッテロ Sp2f-a45h)2016/05/16(月) 12:32:24.23ID:lJ+uPDHMp
githubはピンキリで探しづらい
俺もswiftでお手本になるような電卓とかのシンプルなコードが見たい
0021デフォルトの名無しさん (ササクッテロ Sp2f-/3cR)2016/05/16(月) 12:40:38.21ID:w87CPozzp
Health Kitが swift で出来てたろ
メンテされてるか知らんけど
0022デフォルトの名無しさん (ワッチョイ 237b-k05Y)2016/05/16(月) 16:10:37.99ID:n2wuXq4U0
>>18
ライブラリじゃなくてアプリでないですかね?
0023デフォルトの名無しさん (アウアウ Sa0f-/3cR)2016/05/17(火) 01:39:27.68ID:IyVxLjVMa
SwiftがAndroidで使えるようになってくれたら本格的に手を出すんだが、未だにGoogleが煮えきらないんだよなぁ。

Java捨てろって
0024デフォルトの名無しさん (ワッチョイ 27c9-a45h)2016/05/17(火) 05:10:23.16ID:OsNARz9r0
せっかくJava捨ててまた自社でコントロールできないSwift採用するとは思えない
0025デフォルトの名無しさん (アウアウ Saff-1veL)2016/05/17(火) 07:22:49.02ID:j4ELMKexa
Swiftはキモイ
0026デフォルトの名無しさん (ササクッテロ Sp2f-/3cR)2016/05/17(火) 09:08:07.33ID:hwDKvji2p
煮えないどころか火もついてないレベル
Googleが採用検討してるってのは、GoMobile対抗言語として一応リストアップしたって程度だろうよ

なお、Androidクロスコンパイルが出来るようになら今ならSwiftで Android appは作れる
NDKだけでActivityも構成出来るし、何の問題もないよなぁ、>>23にやる気があるかどうかは問題だけど
0027デフォルトの名無しさん (アウアウ Saff-k05Y)2016/05/17(火) 09:28:42.53ID:eEWe9yj8a
UI周りの扱いやAPIが違いすぎるので言語統一された所でさほどメリットは感じないわな
0028デフォルトの名無しさん (ササクッテロ Sp2f-/3cR)2016/05/17(火) 09:56:58.87ID:hwDKvji2p
UIだけでなく、デバイス毎のセンサーやアプリのライフサイクルも違うしな
それらを一式Googleが整備した素晴らしい環境作れってことだろうけど
そんな夢見た環境出来るわけねー
0029デフォルトの名無しさん (JP 0H6f-mfIb)2016/05/17(火) 10:01:02.39ID:eRIY89eqH
最後に選ばれたのは Gwift でした
0030デフォルトの名無しさん (ワッチョイ 2310-0YMq)2016/05/17(火) 12:33:45.86ID:wEuCBgts0
>>28
ほんとこれ
言語だけ統一されたところで使うライブラリが全然別物なら、いくら言語が勉強済みでもアプリは書けるようにならないんだけど
言語統一されないから勉強しないとか言ってる奴は、結局ワナビーで勉強しない理由を探してるに過ぎないんだよな。
Xamarin厨じゃないけど、そんなに覚える言語少なくしたいならとりあえずC#でも覚えればいいのに
0031デフォルトの名無しさん (ササクッテロ Sp2f-k05Y)2016/05/17(火) 13:12:56.26ID:34EG0vDZp
AppleがiOSやめてAndroid採用すれば万事解決
0032デフォルトの名無しさん (ワッチョイ 27c9-19i7)2016/05/18(水) 07:38:50.02ID:Jpvfs3470
Winding down the Swift 3 release
http://article.gmane.org/gmane.comp.lang.swift.evolution/17276
0033デフォルトの名無しさん (アウアウ Saff-k05Y)2016/05/18(水) 09:19:44.81ID:I7AW6RFGa
Swift3ではSwift4との互換性に留意したみたいだな
0034デフォルトの名無しさん (ササクッテロ Sp2f-/3cR)2016/05/18(水) 09:50:56.18ID:dgo88qX6p
しなくていいのに
大改造しないで何が swift か
0035デフォルトの名無しさん (ワッチョイ d0c9-7Gsa)2016/05/20(金) 15:06:30.37ID:gmi+glK70
ワッチョイついたからか随分静かになったなw
0036デフォルトの名無しさん (ササクッテロ Spbd-MTTD)2016/05/20(金) 18:57:48.31ID:ozfjp8cfp
ドン引きする静かさだけどな
Xamarinステマくらいは残るかと思ったら、ステマすら居なくなってしまった

WindowsやAndroidへのポーティングという愉快痛快な喜劇とか突っ込み所は普通にあるというのに
0037デフォルトの名無しさん (ワッチョイ 653c-DUbb)2016/05/20(金) 22:35:44.42ID:Qmlou+Oi0
誰も書かないと思ったら、ワッチョイか。ワッチョイで何か困ることでもあんのか?
0038デフォルトの名無しさん (ワッチョイ 653c-DUbb)2016/05/20(金) 23:08:02.88ID:vN8wcMgd0
超基本的なことなんだけど
書いたプログラムって別スレ処理しない限りは絶対に上の行から順に実行されるんだよな?
if でネストしてガチガチに縛ってる時はこんな不安感じなかったけどguard 使うようになってからすっごい不安
0039デフォルトの名無しさん (アウアウ Sab5-FWE5)2016/05/20(金) 23:25:53.02ID:Fvy6JyEYa
順番変わるのはdeferじゃなかったか
0040デフォルトの名無しさん (ササクッテロ Spbd-DUbb)2016/05/21(土) 19:56:52.82ID:4UyGacggp
副作用に気を使わんといかんようなコーディングする奴はただテクニック披露したいだけやろと思う
0041デフォルトの名無しさん (ササクッテロ Spbd-MTTD)2016/05/22(日) 10:15:45.02ID:Is9G60Aep
副作用のない関数型に適したSwiftなら何の問題もないな
なお、関数型swiftの流行りは終わった模様
0042デフォルトの名無しさん (ワッチョイ bdf2-DUbb)2016/05/22(日) 17:02:18.67ID:04Qac8BN0
詳解Swift改訂版もう読む気しないんだが売っても大した金にならなそうだな
0043デフォルトの名無しさん (ワッチョイ bdf2-DUbb)2016/05/22(日) 17:04:23.59ID:04Qac8BN0
>>6
えっ?
0044デフォルトの名無しさん (ワッチョイ 653c-xKv1)2016/05/22(日) 17:31:42.78ID:9E8D53wK0
Swift1、2、3と3回売れる作者は笑いが止まらんだろうな〜
0045デフォルトの名無しさん (ワッチョイ 7b6f-FRyb)2016/05/22(日) 18:42:29.19ID:dFM+5p550
ゴールドラッシュで儲けるには、ツルハシ売るのが一番ね!
0046デフォルトの名無しさん (ワッチョイ 653c-DUbb)2016/05/22(日) 20:01:45.66ID:pWjqdl9o0
>>38
例外処理忘れてるぜ!
0047デフォルトの名無しさん (ワッチョイ d0c9-FjVo)2016/05/25(水) 14:36:29.98ID:ikbuqBHn0
swift-evolが完全に自転車置き場の議論の場になっとる件
0048デフォルトの名無しさん (ササクッテロ Spbd-MTTD)2016/05/25(水) 17:13:16.19ID:ptFpiU36p
追ってないから3行で頼む
0049デフォルトの名無しさん (ワッチョイ b37b-8nLm)2016/05/26(木) 14:27:53.14ID:Uz9XmlMN0
Realm 1.0来たね。
https://realm.io/jp/news/realm-1.0/
0050デフォルトの名無しさん (アウアウ Saff-8nLm)2016/05/26(木) 14:42:11.67ID:Y4QJzltGa
iOSオンリーな俺はCoreDataで十分
0051デフォルトの名無しさん (ワッチョイ b37b-8nLm)2016/05/26(木) 15:04:09.71ID:Uz9XmlMN0
>>50
coreData慣れてればいいけど、今から触るくらいだったらRealmかな。
0052デフォルトの名無しさん (アウアウ Saff-8nLm)2016/05/26(木) 15:10:42.02ID:Y4QJzltGa
>>51
なんで?
0053デフォルトの名無しさん (ササクッテロ Sp7f-khAS)2016/05/26(木) 15:34:43.77ID:N5pCo2ZOp
流行りだからじゃない?
swiftまでなら遊べるけどrealm含めて遊ぶ気にはならないから見送りー
0054デフォルトの名無しさん (アウアウ Saff-8nLm)2016/05/26(木) 15:51:14.55ID:Y4QJzltGa
あぁ、意識高い系の人か
0055デフォルトの名無しさん (ワッチョイ b37b-8nLm)2016/05/26(木) 16:45:54.29ID:Uz9XmlMN0
>>52
CoreDataって冗長なコードが多いしあまり直感的に使えない。
MagicalRecordでラップして使うという手もあるだろうけど、
そこまでするくらいならRealmの方がコード量も少なく済むし
アクセスも高速だし、直感的なコードだし という理由。
0056デフォルトの名無しさん (ワッチョイ e318-SNRC)2016/05/26(木) 20:04:06.71ID:NreTHedY0
今日swift勉強しようとswift2の入門書買っちゃったんだけど捨てて買い直すべきなの?
0057デフォルトの名無しさん (ワッチョイ 7b3c-Iguy)2016/05/26(木) 20:09:50.17ID:HNHWlvNI0
>>56
いいえ
0058デフォルトの名無しさん (オイコラミネオ MMff-Iguy)2016/05/26(木) 20:42:41.19ID:2qm/1yJ6M
9割は変わらんからその本で勉強は可能
0059デフォルトの名無しさん (ワッチョイ e318-SNRC)2016/05/26(木) 21:46:59.55ID:NreTHedY0
>>57>>58
ありがとう
勉強頑張るわ
0060デフォルトの名無しさん (ワッチョイ 07c9-Kzgd)2016/05/27(金) 11:48:10.98ID:UB68Nja80
もっと変わるだろ
本質的なところではそんなに変わらないけど字面はかなり変わる
0061デフォルトの名無しさん (ワッチョイ 133c-SNRC)2016/05/27(金) 21:27:17.95ID:7jUk8cRg0
無駄なリファクタリングで名前の大半変わるからなぁ
Xcodeにはやくリファクタリングツール付けてくれないかな
0062デフォルトの名無しさん (ワッチョイ ef93-SNRC)2016/05/29(日) 18:00:00.42ID:+QQL0piv0
Void inってコード補完だとない時あるけど、書かなくていいの?

自分でメソッド作る時も
0063デフォルトの名無しさん (ワッチョイ d742-SNRC)2016/05/30(月) 23:58:23.49ID:KJkS+pjw0
オプショナルな値をチェックするのにif letのネストが酷いことになってるんだが何か良い書き方とか
ベストプラクティスある?
0064デフォルトの名無しさん (ワッチョイ 133c-kHkB)2016/05/31(火) 00:05:48.21ID:LpgiaEue0
guard let value = optional, value2 = optional2 else {
return
}

print("\(value)_\(value2)")
0065デフォルトの名無しさん (ワッチョイ d742-SNRC)2016/05/31(火) 01:46:33.05ID:RCb3Xr940
>>64
おおこんな書き方が!
0066デフォルトの名無しさん (オイコラミネオ MMff-SNRC)2016/05/31(火) 18:28:56.57ID:DJZE5i1qM
なんたらMake関数はObjective-Cの名残?
Make無しの方使っとけばいい?
0067デフォルトの名無しさん (ワッチョイ e3c9-Wqch)2016/05/31(火) 18:40:40.10ID:yIUZknFd0
Make使ったらまけ
0068デフォルトの名無しさん (ワッチョイ 07c9-HpYT)2016/05/31(火) 18:46:10.05ID:s2aN7j8c0
C構造体のmake系は3.0で消えるから今のうちからinit使っとけよ
0069デフォルトの名無しさん (ワッチョイ d742-SNRC)2016/05/31(火) 18:57:14.56ID:RCb3Xr940
hogeMethod(a, b:b)みたいに呼び出すときb:bって書くの面倒なんだけど
hogeMethod(a, :b)みたいに省略できないのかな
0070デフォルトの名無しさん (ワッチョイ 7b3c-Iguy)2016/05/31(火) 18:57:35.16ID:Uyu8CUZY0
ドデカク使おう
WAKEだよ!

すげー!
0071デフォルトの名無しさん (ワッチョイ 9b17-SNRC)2016/05/31(火) 22:58:07.14ID:43sFGgYH0
>>69
自分で定義するメソッドなら順番を固定してラベルを省略する方法がなかったっけ?なかったらごめん
0072デフォルトの名無しさん (ワッチョイ 133c-kHkB)2016/05/31(火) 23:11:48.01ID:LpgiaEue0
外部変数名を_にすればできるよ
同じ型でオーバーロードできなくなるけど
0073デフォルトの名無しさん (ワッチョイ 07c9-HpYT)2016/06/01(水) 01:11:37.07ID:omPFj0uv0
:b って書いてるから呼び出し側にシュガー欲しいってことだろ
確かに変数名を真面目につければつけるほど引数ラベル名と被るジレンマよくある
0074デフォルトの名無しさん (ワッチョイ 133c-HpYT)2016/06/01(水) 17:56:16.68ID:bUMaKpp30
↓のコードで、parentのvalのdidSetがよばれない。別のプロパティであればdidSetがよばれてますが、同一クラスの同一プロパティだと何か制限があるんでしょうか?メソッド経由でプロパティ変更した場合はよばれるんだけど一々不便。

class Node: NSObject {
let name: String
weak var parent: Node? = nil
var val: Double = Double.NaN {
didSet {
print("name = ¥(self.name), old = ¥(oldValue), new = ¥(self.val)")
self.parent?.val = self.val
}
}
init(name: String, parent: Node? = nil) {
self.name = name
self.parent = parent
super.init()
}
}

let node1: Node = Node(name: "1")
let node2: Node = Node(name: "2", parent: node1)
let node3: Node = Node(name: "3", parent: node2)
node3.val = 3
0075デフォルトの名無しさん (ササクッテロ Sp7f-HpYT)2016/06/01(水) 20:49:08.95ID:v7iaUTTnp
無限ループを避けるための措置かもね
それか単にバグなのか
didSetをこんな実装にすれば一応親を辿ってくけど

didSet {
var n: Node! = self
while n.parent != nil {
n.parent!.val = self.val
n = n.parent
}
}
0076デフォルトの名無しさん (ワッチョイ 213c-2WQj)2016/06/02(木) 10:25:23.44ID:9+Vh9Y6K0
>>75
例がイマイチだったのでわかりづらかったのかもですが、parent.valでもdidSetを発火したかったのですよ。
func setVal(newVal: Double) { self.val = newVal } みたいなん用意して、self.parent?.setVal(self.val)てきなことやれば回避はできるんですが、無駄なコードが増えて気持ち悪い・・・
0077デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)2016/06/02(木) 17:42:03.42ID:qFtmyDSFM
オプショナルバインディングするとnilチェックでいいよみたいな警告出てくるけど
厳密に言うとどうなの?
Xcodeに従っとけばいい?
0078デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)2016/06/02(木) 17:49:36.51ID:qFtmyDSFM
オプショナルを代入した変数を使用しなければ同じってことかな?
0079デフォルトの名無しさん (ワッチョイ 213c-2WQj)2016/06/02(木) 19:48:20.11ID:9+Vh9Y6K0
>>77->>78
例をコードで示してくれるか、警告内容書いてくれないと…
さすがに仕事以外でエスパーするの辛い。
0080デフォルトの名無しさん (ワッチョイ 213c-qC5Z)2016/06/02(木) 20:31:32.74ID:O50w6Y0Q0
>>77
使わないのに無駄に関数内で定数設定してるから注意されてるんだよ
あとvarで変数宣言したのに変化させなかったらletで宣言しろって言われる
メモリの無駄遣い防止機能かな

でも宣言した瞬間に邪魔なところに注意文出るからイラッとくる
文字色反転くらいでいい
0081デフォルトの名無しさん (ワッチョイ 9e93-4qA/)2016/06/02(木) 21:01:20.97ID:xqPUilla0
https://github.com/ShingoFukuyama/3DTouchDetectStateOfPeekPopCancel/blob/master/PreviewState/ViewController.swift

これの65行目です。

今Peek and Popを調査中でしてf^_^;
0082デフォルトの名無しさん (ワッチョイ 213c-qC5Z)2016/06/02(木) 21:32:05.41ID:O50w6Y0Q0
>>81
何これ?意味わかんない
if let object = object {} の時点でおかしいでしょ。
if let _object = object とか名前変えないと、、
しかもやるなら最初の行に
guard object != nil else {
return
}
もしくは
if object == nil {
return
}
これでいい。最初のif分にしかobject出てきてないのにアンラップする必要すらないよ。
というかこいつのは参考にしない方がいい。
0083デフォルトの名無しさん (アウアウ Sa76-2WQj)2016/06/02(木) 21:40:53.13ID:tHwJhWU8a
いや別に名前は同じでいいだろ
objectという引数をobjectというローカル変数へアンラップしてるってことだし
まぁ、可読性という意味ではあれだが
objectは下の方でちゃんと使われてるだろ
まぁ、頑張れ、ふくやましんご君
0084デフォルトの名無しさん (ワッチョイ 9e93-4qA/)2016/06/02(木) 21:59:29.18ID:xqPUilla0
object使われてましたねf^_^;
見落としでしたが、時々オプショナルバインディングで警告が出るので質問しました。
返答していただきありがとうございました
あとふくやましんごさんは赤の他人ですので
0085デフォルトの名無しさん (ワッチョイ 213c-qC5Z)2016/06/02(木) 22:16:03.42ID:O50w6Y0Q0
ああ本当だ!後で使われてるね。じゃあもしguardで書くなら
guard let _object = object else {
return
}
こっちだわ。
ちなみにこの_objectも後ろで
_object.removeObserver(self, forKeyPath: "state")
書くまで注意される。理由は>>80

てか本人だったんか、、何かごめんな。
0086デフォルトの名無しさん (ワッチョイ 213c-qC5Z)2016/06/02(木) 22:17:39.98ID:O50w6Y0Q0
>>84
やっぱり他人やったんかい!
0087デフォルトの名無しさん (ワッチョイ 213c-ChPp)2016/06/02(木) 23:14:42.95ID:dR7AiF6z0
おいおいここにはSwift初心者しかいないのか?

case .Ended, .Failed, .Cancelled where object != nil :
self.navigationItem.title = "Not committed"
object.removeObserver(self, forKeyPath: "state")

これでええやろ、guardすら必要ない
0088デフォルトの名無しさん (アウアウ Sa76-2WQj)2016/06/03(金) 00:23:22.47ID:VvE0bkkHa
厳密に条件を揃えるならその上のcase文にも必要になるけどな
0089デフォルトの名無しさん (ササクッテロ Sp89-ud2d)2016/06/03(金) 01:04:51.42ID:TXwUryARp
>>87
swift玄人様チーッス

betaから使っててもバズワードな言語仕様変更についてく気にならんよなぁ
guardの方がスマートに見える、流行りの書き方よりコードの一貫性を優先したい
0090デフォルトの名無しさん (ワッチョイ 213c-ChPp)2016/06/03(金) 01:07:30.72ID:9r6PyDlh0
トーシロだな
明示的にremoveObserverを呼ぶ必要があるケースを考えろ
0091デフォルトの名無しさん (ササクッテロ Sp89-ud2d)2016/06/03(金) 07:22:16.18ID:XjG17jmwp
元のコードみてないけど、これは必要なケースなの?
んで、guardじゃできないなら、 guardすら要らん、じゃなくそのコードはバグって指摘じゃないの?

変にむきになるとテクニックを披露したいだけの意識高い系の玄人様っぽいぞ
0092デフォルトの名無しさん (ワッチョイ 213c-2WQj)2016/06/03(金) 09:57:28.19ID:UqDa+ER+0
observeValueForKeyPathで、ofObject object: AnyObject?がnilになるケースって存在すんの?
ObjCのクラスを自動的にラッパーして直してないから、ポインタがオプショナルになってるだけでしょ?と思ってる。

自分なら、このケースの場合、if let object は外して↓だけで済ます。
object?.removeObserver(self, forKeyPath: "state")

>>82
外人とかのコード見てもアンラップするだけで、変数名変えるのはあんまり見かけないな。
0093デフォルトの名無しさん (ササクッテロ Sp89-4qA/)2016/06/03(金) 18:27:35.42ID:iR+TeNRGp
>>92
お前がSwiftプロだ
0094デフォルトの名無しさん (ササクッテロ Sp89-D6vv)2016/06/04(土) 15:34:17.98ID:cE2uZEbNp
namespace prefixが不要なのはいいけど、on Linuxでどうすりゃいいのっと思ったらSwift 3で正規投入されるPackage Managerが管理するのな
2.xでも一応機構はあるっぽいけど便利コマンドが追加されるだけで構成は同じだといいなぁ
誰かXcodeを使わないSwift開発のノウハウ持っててPackage管理してる人がいたら、互換性(見込み)について教えてくれぃ
0095デフォルトの名無しさん (ササクッテロ Sp89-D6vv)2016/06/04(土) 20:10:44.84ID:ets/dnaap
スマン、嘘言った気がする
2.xにon Linuxでも扱えるnamespaceはないかもしれん
誰かエロい人教えて、、、
0096デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)2016/06/08(水) 17:06:31.54ID:QDb2Bi8hM
配列をindexを3の倍数を除いて処理したいです。

for item in array {
// 処理
}

このスタイルで書きたいのですが、いい案ありますでしょうか?
0097デフォルトの名無しさん (アウアウ Sa76-rI5i)2016/06/08(水) 17:12:21.98ID:FiJoHGXCa
世界のナベアツ来てんね
0098デフォルトの名無しさん (ブーイモ MMb8-ud2d)2016/06/08(水) 17:43:25.79ID:IzbVLKR1M
>>96
enumerateを使う。
filter使うべきって人もいるかもしれない。
0099デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)2016/06/08(水) 17:46:06.21ID:QDb2Bi8hM
>>98
ありがとうございます。
考えてみます!

世界のナベアツだったら3の倍数で処理するだろw
0100デフォルトの名無しさん (ワッチョイ 213c-1mS6)2016/06/08(水) 18:51:27.84ID:HG8HbZIy0
for (index, item) in array.enumerate() where index / 3 > 0 {
かな?
0101デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)2016/06/08(水) 18:52:30.23ID:QDb2Bi8hM
綺麗ですね!
参考になります
0102デフォルトの名無しさん (ワッチョイ e0c9-rI5i)2016/06/08(水) 19:02:44.73ID:4PrKHMPD0
>>100
>index / 3 > 0

なんでやねん
0103デフォルトの名無しさん (ワッチョイ 213c-1mS6)2016/06/08(水) 19:56:11.04ID:HG8HbZIy0
>>102
あれ違った?ボケてるかも
0104デフォルトの名無しさん (ワッチョイ 213c-1mS6)2016/06/08(水) 19:57:46.26ID:HG8HbZIy0
あ、index % 3 か
0105デフォルトの名無しさん (アウアウ Saff-2+vS)2016/06/10(金) 20:50:53.96ID:dDF5pFSwa
Swift 3のABI安定化が見送りへ
https://www.infoq.com/jp/news/2016/06/swift-3-no-stable-abi
0106デフォルトの名無しさん (ワッチョイ 8b3c-1atY)2016/06/10(金) 21:34:49.53ID:Icj8uFk90
>>105
納期に間に合わないなら仕方ないよねぇ。
さすがに後々問題になる可能性があるなら時間かけてでも検討、排除してほしいわ。
0107デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/10(金) 21:39:16.58ID:ZdUNqcUFp
> Objective CのABIが,おもにスケジュール上のプレッシャによって
ワロタ

swiftの中ですらABI安定してないのに、objcまで頑張ろうとしたら、そりゃ無理だわw
0108デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/10(金) 22:28:35.24ID:Ibo6Xp9La
もうobjcの方は頑張らないと思うけど
0109デフォルトの名無しさん (ワッチョイ eb7b-1atY)2016/06/10(金) 23:10:00.51ID:xyNxE4XD0
https://ja.wikipedia.org/wiki/Application_Binary_Interface

APIが変わってもABIは互換性は維持するって可能なものなんだ。
APIとABIって一対一対応なのかと
0110デフォルトの名無しさん (アウアウ Sa97-oU5x)2016/06/11(土) 01:55:06.60ID:QumDJQ98a
swiftはオワコン
時代はC#
WWDC二次会が楽しみだわ
0111デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/11(土) 02:06:01.12ID:XA6DLEjFa
C#って遅いじゃん
クソ重い.NET無いと動かねぇーし
0112デフォルトの名無しさん (ワッチョイ ef3c-jNGR)2016/06/11(土) 03:04:26.27ID:HBWP+BM70
>>111
え!?w
0113デフォルトの名無しさん (ワッチョイ 0742-jNGR)2016/06/11(土) 03:38:53.11ID:+qdbIGEA0
>>109
ABIって例えば関数呼び出す時のレジスタどうするかとかスタックどうするかとかいった話だろ。
普通はAPI関係ない。
0114デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/11(土) 07:44:10.16ID:ienu9sBbp
>>110, >>112はXamarinステマ厨だからほっとくとしてだ、、、

>>111
処理性能の足を引っ張ってる小さな(笑)ランタイムがないと動かないSwiftディスってんじゃねーよwww
0115デフォルトの名無しさん (ワッチョイ 8b3c-1atY)2016/06/11(土) 10:06:59.69ID:FWlFwO2K0
>>110
iOSアプリ開発すんのにUnityとかいちいち起動してらんねーんだよ。
XcodeでC#使えるようになったら考えてもいい。
つーか、別に言語なんて糞じゃなけりゃなんでもいいわ。

今考えるとSwift1.x系はそこそこ糞だったな。
0116デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/11(土) 10:35:44.87ID:iL4iXZRCa
C#はJavaと同じぐらい糞
参照カウント式メモリ管理に慣れた今ガベコレとか耐えられない
0117デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/11(土) 11:47:20.38ID:K3zUElr6p
そんなプログラミング能力の低さを大声で叫んでどうしたいんだよ
言語、ランタイムに合わせて使いこなすか、使えないなら近寄らないべきだろ
0118デフォルトの名無しさん (スプー Sdcf-jNGR)2016/06/11(土) 11:51:07.38ID:BuQwEvTrd
>>117
ガベコレのほうがよっぽど初心者向け仕様だろ
0119デフォルトの名無しさん (ワッチョイ 233c-VqNH)2016/06/11(土) 16:33:32.90ID:lGk3iJgb0
心配しなくても言語スレに来るような奴ならちょっとやれば慣れるし耐えられるって
0120デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/11(土) 17:12:30.02ID:tY1WxmQFa
公式の開発環境があるのにわざわざサードパーティの環境使うには
それなりのメリットが必要だわな
iOSオンリーな俺にわざわざXamarinを使うメリットはないのだよ
0121デフォルトの名無しさん (ササクッテロ Spd7-2ckR)2016/06/11(土) 22:58:00.28ID:g/rGqFOCp
>>118
参照カウント, GCのいずれかしか使いこなせない => 初心者
いずれも適当に使える => 中級者
alloc, free以外許す気がない => 上級者

>>115
2.xもクソだし、3.xもクソだと思うよ
3.xのビルドツール使ってみてるけど、Package ManagerがCocoaPodsやCarthageと互換性なくて笑う
今の所は .xcodeproj や Info.plist とも連携する雰囲気がないし、どうなるのさこれ・・・
0122デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/11(土) 23:07:50.31ID:eRqP7x9ga
GCに使いこなすも糞もないだろw
CoacoaPodsもarthageもAppleからしてみればサードパーティが勝手に提供してるツールでそこの互換性を気にする義理はないわな
0123デフォルトの名無しさん (ワッチョイ 8b3c-7xHu)2016/06/12(日) 00:11:53.55ID:S4cPSCPd0
>>121
使えるものを使わずalloc, freeに拘るのはただの老害だと思うけど、
自前でメモリ管理できないプログラマは二流だし、
自前でメモリ管理することを許さないプログラミング言語は三流だわな

PackageManagerは将来的にはXcodeに組み込まれてNuGetみたいにゴリ押しされるから大丈夫
0124デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/12(日) 01:23:45.61ID:dmPmHezlp
言語とランタイムとプログラマと混ざってて意味不明
要はARCマンセーなんだろうな
0125デフォルトの名無しさん (アウアウ Sa3f-zoFs)2016/06/14(火) 00:54:41.75ID:8yjejgOaa
SwiftみたいなC言語に由来しない言語が流行ると、言語乱世の世が来てしまう
0126デフォルトの名無しさん (ササクッテロ Spd7-zoFs)2016/06/14(火) 01:22:51.47ID:7FWxp3bzp
Swiftなんかがオープンソースで流行ったら無法地帯になるな
Swift++とか来年すぐに出てくるぞ
0127デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/14(火) 01:37:55.95ID:TmMOv/QAa
その次はSwift#な
0128デフォルトの名無しさん (アウアウ Sa3f-zoFs)2016/06/14(火) 01:47:48.70ID:8yjejgOaa
その次はSwiftyとかって言うScript
0129デフォルトの名無しさん (ワッチョイ a33c-AHtr)2016/06/14(火) 03:09:06.48ID:tPi5OMXi0
だったらSwift on Railsのがいい
0130デフォルトの名無しさん (ワッチョイ 3b66-oU5x)2016/06/14(火) 05:04:52.84ID:9VHKttIj0
iPad(iOS)にswift playgroundきたな。
プログラムの勉強にはいいんだがswiftの方が
学んで後々使えるぐらい仕様安定するのか…
0131デフォルトの名無しさん (ワッチョイ ef93-oU5x)2016/06/14(火) 05:18:15.59ID:F+5+ukCP0
iPad Proが欲しくなってきた
0132デフォルトの名無しさん (ワッチョイ 9b8b-jNGR)2016/06/14(火) 07:54:06.23ID:o0HgXHCE0
大丈夫だよ
そんな心配しなくてもSwiftはすぐ消えるから
0133デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/14(火) 08:22:29.77ID:GA68fGvrp
>>126
随分前からswiftppは出てる
0134デフォルトの名無しさん (アウアウ Sa3f-zoFs)2016/06/15(水) 01:58:24.67ID:HOkjGBqoa
今Swift化してる会社は、分かっていないところばかりです
0135デフォルトの名無しさん (ワッチョイ a33c-AHtr)2016/06/15(水) 02:04:03.71ID:JQG8N//+0
なにを?
0136デフォルトの名無しさん (ワッチョイ 57c9-1atY)2016/06/15(水) 03:04:06.18ID:AKfbMiRN0
WWDCのセッションは完全にSwift一色だな
0137デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/15(水) 08:04:43.58ID:t8WJCWqDp
去年がObjCサンプルコード大量だったらしいからなw
しかし、逆ブレが強すぎてSwift風味に少食気味になるわ
0138デフォルトの名無しさん (ササクッテロ Spd7-FUCW)2016/06/15(水) 13:30:26.42ID:t8WJCWqDp
Swift3でNSプレフィクスが要らなくなるって
NSプレフィクスをコンパイラが付けるから要らなくなるってことかと思ったら
Foundation.swiftとかでNSプレフィクスなしの構造体が再定義されてるのな

道理でNSプレフィクスが要るものと、要らないものと混在するわけだ
< NSプレフィクスを全撤去したらビルドエラーが出た
0139デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/15(水) 14:02:58.21ID:wNwSdVKma
どんどんジョブズの遺産が消されていくな
0140デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/15(水) 14:24:43.12ID:t8WJCWqDp
聖別して聖遺物として崇めないとな

取り合えず、構造体が単なるラッパーなら性能がまた落ちるからやめて欲しい
NSつけたらエラー/ワーニング出るけど
0141デフォルトの名無しさん (ワッチョイ fc42-o3Bz)2016/06/16(木) 00:24:12.15ID:b32tR6DT0
NS プレフィクス削除とか Objective-C 冷遇とか
NeXT にコンプレックスがある奴が引っ掻き回しているとしか思えない。
0142デフォルトの名無しさん (ワッチョイ d98b-qS7w)2016/06/16(木) 00:55:04.77ID:N2kyoOQs0
>>138
くそだわ
最近のアップルはホントに小手先の変わった感で誤魔化すことしか考えてない
0143デフォルトの名無しさん (ワッチョイ fc42-ntlg)2016/06/16(木) 01:11:41.34ID:5OteNi9t0
何気に文字列処理が普通の言語っぽくできるようになってきたね
まだまだ不便だけど
0144デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)2016/06/16(木) 01:12:59.62ID:MpHMwtX90
小手先で誤魔化しとるのはmutable型とimmutable型で分かれてたり、プロパティでcopy属性つけたりせんとあかんObjCの方やで
Swift先生が値型セマンティクスのあるべき姿に正してくれたんやで
0145デフォルトの名無しさん (ワッチョイ 8b3c-77//)2016/06/16(木) 01:14:19.64ID:lHelW+jt0
能無しが文句ばかり言ってる
0146デフォルトの名無しさん (ワッチョイ 8317-ntlg)2016/06/16(木) 01:38:25.49ID:a4ODjedr0
>>144
そういやObjective-CだとimmutableはスレッドセーフでmutableはスレッドアンセーフだけどSwiftはそのへんどうなってるの?
0147デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/16(木) 01:49:47.87ID:xvtNBgrWp
>>141
obj-cもバックポートしてジェネリクスやnilable追加してる
冷遇されてないやん
0148デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/16(木) 02:03:18.81ID:h5j7M7Fta
ジョブズの遺産であるObj-Cも近いうちに淘汰されるだろうな
0149デフォルトの名無しさん (ササクッテロ Sp4d-MYuK)2016/06/16(木) 08:27:02.43ID:Rn5Y9zAqp
もうApple嫌いになった
0150デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/16(木) 08:27:55.28ID:qIs25kXxp
NSがつかないのは値型ルールなら分かるんだが、
DateFormatterはclassだし、一貫性がないんだが
0151デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/16(木) 08:31:59.04ID:xvtNBgrWp
一見、一貫性がないように見えるだけで法則はあるはずだから、、、
一見で分からないと実用が辛いと切実に思いはする
0152デフォルトの名無しさん (アウアウ Sa3e-MYuK)2016/06/16(木) 08:32:39.70ID:YJ4WCJk5a
SwiftよりもObj-C改良してくれよ〜
クソアプリ作り直すの面倒なんだが
0153デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/16(木) 08:36:51.43ID:qIs25kXxp
NSがない値型
NSがない参照型
NSが残ったままの一部Mutable参照型
NSが残ったままでMutableはないけどSwiftに合わせてMutableに変更した型

の4パターンない?これ法則性なんてないぞ
0154デフォルトの名無しさん (アウアウ Sa3e-MYuK)2016/06/16(木) 08:46:08.83ID:YJ4WCJk5a
SwiftOS発表されなかったな
どうせウンコなのだろうけど
0155デフォルトの名無しさん (ササクッテロ Sp4d-MYuK)2016/06/16(木) 09:35:08.90ID:Rn5Y9zAqp
Swift使うとプログラムが良くなるのか?
ならないならObCで十分な気が
0156デフォルトの名無しさん (ワッチョイ 353c-9XTm)2016/06/16(木) 10:00:39.78ID:hWAFG/l70
好きな方を使えばいい
0157デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/16(木) 10:46:45.34ID:T+6u6n/Ha
デリゲートゾーンの痒みにはSwiftが効く
0158デフォルトの名無しさん (ササクッテロ Sp4d-MYuK)2016/06/16(木) 10:58:05.80ID:Rn5Y9zAqp
Swiftもなんか違うんだよな〜
もっとなんつーか、nullとかどうでもよくて、
テーブル配置するとweb api呼ぶロジックまでサクッと作ってくれたり、セル中のイメージについても非同期でふあっと表示してくれたり、プログラムレスみたいなところをAppleには期待しているんだか・・
0159デフォルトの名無しさん (ワッチョイ 21c9-IAjB)2016/06/16(木) 11:56:15.03ID:hLUHI1zp0
>>138-142 >>141
同意
Node.js 界隈の流れと似てるんだよな
0160デフォルトの名無しさん (ササクッテロ Sp4d-7oQw)2016/06/16(木) 12:13:45.98ID:z0RRzkKrp
>>153
問題を分解して
・NSプレフィクスなしのstructとclassが混在してる
=> メンバが値型だけのものと参照型もあるものがあるから仕方ない
・Mutableがあるものとないものがある
=> どの型(struct/class)がそれに当たるか分からんけどObjCでもMutableクラスがあったりなかったりするんじゃね?

マトリックスで4パターン在りそうではあるな
もう面倒だから全てclassにしてMutable有無はObjCにMutableを全てバックポートして1パターンにすればいいな!
0161デフォルトの名無しさん (ワッチョイ 353c-ntlg)2016/06/16(木) 21:28:18.49ID:sy3QoUPQ0
値型とクラスはXcode上で別の色にして欲しい
0162デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/16(木) 23:04:56.13ID:WBjdL78K0
>>161
型名にプリフィクスつければいいんでない?
俺はクラスはCHogeみたいにしてる
これだとわかりやすい
0163デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/16(木) 23:29:09.38ID:XHHNTNoma
値型か参照型かってそこまで気になるか?
0164デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/17(金) 01:37:43.94ID:5FRm5cqIp
Cプリフィクスとかダサすぎ
0165デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/17(金) 05:01:47.43ID:O3eIFVC90
>>163
・参照型はヒープからメモリが動的確保される
 →ちゃんとしたメモリ管理を意識するには区別は必須
・参照型は複数の場所からメモリが共有される
 →確保されたメモリの寿命が想定しにくい
  →意図しないタイミングでメモリ確保や解放が走る危険がある
   →ゲームにおいてはFPSが安定しない原因となる
    →できるだけ使わないようにする工夫が必要(区別が必要)
  →再現や原因特定が難しいバグの温床になる(解放後アクセスなど)
   →できるだけ使わないようにする工夫が必要(区別が必要)
・値型はコピーコストが大きい
 →値型できるだけ代入や関数渡しを行わないようにする必要がある
  →値型と参照型を区別する必要がある

プロのエンジニアほど値型と参照型を区別し実行効率のいいプログラムを書く
「本物の」エンジニアが
(値型と参照型がごっちゃの)C#やSwift、Javaを使わず
(値型と参照型が区別しやすい)C++を使うのはそれが理由
0166デフォルトの名無しさん (ワッチョイ 0166-ntlg)2016/06/17(金) 05:35:01.90ID:Yb0Hf3EI0
プログラム言語の細かいことわからないなら"わからない"と言いなさいよ?>>165
0167デフォルトの名無しさん (ブーイモ MM01-qS7w)2016/06/17(金) 07:59:29.55ID:l4CEosSxM
参照or値とは少し異なるけど、本来c++みたいにインスタンス化時にどちらかか選べるべき(ヒープorスタック)。
c#をまねたんだろうけど、c#使ってみて使いにくいと思わなかったんだろうか。。
0168デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/17(金) 09:09:46.50ID:1pirHGETp
値型/参照型、スタック/ヒープを@修飾の後付けで細かく調整した結果がobjcの混沌とした言語仕様で
逆ブレしてできる限り修飾なくしてタイプに合わせて固定するようにしたんだろう

retain, releaseうぜー => ARCにしよう
@修飾うぜー => タイプ毎に固定しよう
思想は分からなくもない
0169デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/17(金) 09:46:49.62ID:/Brx6kYia
>>165
参照カウント式のメモリ管理なんだからメモリ確保や解放のタイミングはっきりしてるだろ。ガベコレと混同してないか?
意図しないタイミングで解放されると思っているならそれは自分が意識できていない証拠。
それと値型が常にコピーされるわけじゃないだろ。コピーオンライトだから変更が生じた時に初めてコピーされる。変更しないならコストはほとんどかからない。
なぜstructの変更メソッドにmutatingを強制されると思ってるんだ?
0170デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)2016/06/17(金) 11:03:24.20ID:JJkz2RIU0
「本物の」エンジニアかっけ〜www
0171デフォルトの名無しさん (スプー Sdf8-qS7w)2016/06/17(金) 11:12:29.81ID:IJmnPBGJd
本物じゃないエンジニアとは一体…。
0172デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/17(金) 12:34:52.24ID:lpE23cnBp
初心者なんだけど例えばボタンのサブクラス作って使いまわせば色とか形とか全部変わりますよね?
で、それぞれのボタンテキストを個々に違うものにするにはどうすればいいんですか?
やっぱ個別に
var btn1 = btn()
var btn2 = btn()
ってして別物にするしかないんですか?
インスタンス化してから個別に変更可能な変数とかありませんか?
0173デフォルトの名無しさん (ワッチョイ 0166-ntlg)2016/06/17(金) 13:29:49.01ID:Yb0Hf3EI0
釣りかと思った。と最初に書いておこう。
インスタンスはそれぞれ情報を持ってるから単純に
それぞれのインスタンスのプロパティ(変数)に
インスタンス作成後にドット構文で値をセットするだけ。
0174デフォルトの名無しさん (ワッチョイ fc42-ntlg)2016/06/17(金) 16:09:20.95ID:G7TV3QK90
>>165
参照型と値型の区別はスタックやヒープとは無関係
0175デフォルトの名無しさん (ササクッテロ Sp4d-7oQw)2016/06/17(金) 16:11:53.54ID:1pirHGETp
@objc public class Drawer: NSObject {
public func draw(string: String) {
}
public func draw(string: String, point: CGPoint) {
}
}

@objc public class Drawer2: NSObject {
public func drawString(_ string: String) {
}
public func drawString(_ string: String, point: CGPoint) {
}
}

Appleの教えに従順な子たちに聞きたいんだが
第一変数の前置キーワードの有無はどっちがモダンなの?
0176デフォルトの名無しさん (アウアウ Sac5-9XTm)2016/06/17(金) 18:01:14.67ID:Gr/Wtxhwa
>>175
3.0からは上になるらしい
0177デフォルトの名無しさん (ワッチョイ 353c-ntlg)2016/06/17(金) 18:54:24.96ID:6bQikBHY0
>>173
あ、それは普通に
var btn1 =btn()
var btn2 =btn()
ってしてる場合ですよね?
そうじゃなくて
btn1 = btn2 =btn()
の状態でbtn()クラス内にインスタンス化した後に個別で設定できる変数が欲しいなと思ったんです。
何か変なこと言ってるかも知れませんが、、
0178デフォルトの名無しさん (ワッチョイ 8b45-o3Bz)2016/06/17(金) 19:09:07.05ID:abgNsJLe0
型プロパティで検索すればやりたいことができそう
0179デフォルトの名無しさん (JP 0Ha5-qS7w)2016/06/17(金) 19:14:37.99ID:EHxWLoiPH
>>177
構造体じゃだめ?
0180デフォルトの名無しさん (ワッチョイ d217-bSae)2016/06/17(金) 19:55:16.29ID:zGYbbhBh0
              【Win10】    こんな犯罪級OS薦めんなよwww   ↓   【スパイウェア】


この使用許諾契約書には書かれています
”最後にあなたのコンテンツを含む個人データ(例えばあなたの電子メールの内容や―プライベート通信やプライベートフォルダ内のファイル)にアクセスし―開示し保全します”
開示する ここ重要だよ
契約がなければ通常 高度な違法行為になりうることです それはあなたが自分の意思としてこの契約書に同意したのです
https://www.youtube.com/watch?v=ZBwEmgdqB1c



「1910」 副島隆彦 2016年6月16日

大阪市や大阪府のバスの運転手が年収1000万円は許せない、600万円まで落とすと。
なぜなら、普通の労働者たちが年収400万円でようやく働いているのに、何でバスの運転手が1000万円ももらえるんだと。

このものすごくすばらしい主張があった。
これを言われると日本の民主党や共産党は非常に困るんです。
が、先ほど言ったように、金持ちたちの財産を相続税で国家が奪い取る、これを正面から本気でやったらほんとに橋下はたたき潰されました。

労働組合を押さえつけるまでは安倍晋三たちも大好きだからよかったんだけど、
自分たち自民党体制の、金持ちと地主階級、経営者を大事にするという自民党の基本骨格があるわけです。
0181デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/17(金) 20:04:24.09ID:m2lL2O8z0
>>178
あそっか!クラス変数ってのがありましたね!
それかもしれません!検索してみます!!

>>179
UIViewのサブクラスなんですよ。
それに内容物がそれなりにあるので値型のコピーで増やすとメモリがもったいないなと思いまして。

そもそも元は
var btn1 =btn()
var btn2 =btn()
のやり方で普通に作って動かしてたんですがメモリを意識するようになり参照型の挙動について深く知りたくなりまして、、

上記のインスタンスの増やし方だとインスタンス変数はそれぞれ別領域に確保されてる気がするんですよね。
でも色や形、内部関数で使う変数など大半の情報は共通で良いので
btn1 = btn2 = btn()
のような挙動が好ましいです。
でも個別で設定したい変数もある。という感じです。
0182デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/17(金) 20:11:28.80ID:NB8H2ZOx0
>>181
class A {
static var val: UIColor
}

とかじゃダメなん?
てか、メモリなんか気にすんなよ、現行のiPhoneなら落ちねーよ。
0183デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/17(金) 20:17:50.16ID:m2lL2O8z0
Class stored properties not yet supported in classes; did you mean 'static'?

ってまだ使えないみたいですね、、
staticにするとどういった挙動になるんでしょうか?
0184デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)2016/06/17(金) 21:27:42.63ID:JJkz2RIU0
ササクッテロ Sp4d-ntlg
ワッチョイ 353c-o3Bz

本物のエンジニアさんマジかっけーw
0185デフォルトの名無しさん (ブーイモ MM39-qS7w)2016/06/17(金) 22:58:49.23ID:k+R4NuOAM
>>184
お前はもっと頑張れよ
0186デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/18(土) 00:43:15.51ID:SqXZp1CN0
>>183
自分の環境だと↓で動くけどな。staticはそのクラス内で同じ値を共有する指定子だ。詳しくは”swift static”でググれ。

func test() {
class Hoge {
static var str: String = "hoge"
}

let hoge1: Hoge = Hoge()
let hoge2: Hoge = Hoge()

print(hoge1.dynamicType.str) // "hoge"
print(hoge2.dynamicType.str) // "hoge"
print(Hoge.str) // "hoge"

Hoge.str = "huga"
print(Hoge.str) // huga

hoge1.dynamicType.str = "foo"
print(Hoge.str) // "foo"
print(hoge2.dynamicType.str) // "foo"
}
0187デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/18(土) 07:18:13.93ID:SSFYRUk+0
>>186
ありがとう!
助かりました!
0188デフォルトの名無しさん (ササクッテロ Sp4d-7oQw)2016/06/18(土) 12:39:22.87ID:LoVGXRyxp
>>176
thx
ObjCヘッダにした時に drawWithString:(NSString *) string じゃなく drawString:(NSString *)string になって欲しかったけど
beta や 1.x にはそんな変換ルールがあったはずだけどいつの間にか無くなってて、これも後者はダサいというApple様の教えっぽいな

突き抜けるとこうなるけど、@objcをつけてこれをやるのは流石にダメな気がしなくもない
@objc public class Drawer: NSObject {
public func draw(for string: String, at point: CGPoint = CGPoint.zero) {
}
}
0189デフォルトの名無しさん (ワッチョイ c693-ntlg)2016/06/18(土) 13:51:47.24ID:OLXU/OFf0
Stringをfor inで一文字ずつ取り出すのって廃止になったんか
0190デフォルトの名無しさん (ワッチョイ c693-ntlg)2016/06/18(土) 13:56:54.21ID:OLXU/OFf0
.charactersね
0191デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/18(土) 18:17:19.82ID:jDGY/iix0
最悪だわー
swift3ちょっと触ってみようと思ってbetaのXcodeでファイル開いたらXcode7でエラー出まくってるんですけどー
コンバートはキャンセルしたはずなのにー
最悪なんですけどー
0192デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/18(土) 18:28:38.44ID:iN6Inr/Dp
>>191
ざまぁwwww

>>189
その手のインターフェースは着々と削ってきてるなぁ
多段メソッド呼べばforで回せる型は取得出来るだろうよ、Qiitaに行ったらサンプルコードありそう
0193デフォルトの名無しさん (ワッチョイ 353c-4fuR)2016/06/19(日) 01:49:47.74ID:8IT6imBp0
そろそろSwift4をまともにするために我々もコミュニティにかかわっていくべきなのでは
0194デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/19(日) 01:51:48.82ID:YCHLwc/F0
>>191だけど症状違った
Xcode8-beta動かしたらXcode7がおかしくなるみたい
“Command /usr/bin/ditto failed with exit code 1”ってのが3つ出てる。
設定ファイル上書きされたっぽい

あーめんどいわー
0195デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/19(日) 02:01:59.66ID:YCHLwc/F0
あ、違った
Xcode8-betaでも同じエラー出てるわー
何だこれー、意味わかんねー
0196デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/19(日) 02:50:54.95ID:YCHLwc/F0
別名でプロジェクト作ったらエラー消えた
そういうことだったらしい
0197デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/19(日) 10:05:42.83ID:jiJ96XDsa
なんだそういうことか
0198デフォルトの名無しさん (ワッチョイ 5c42-qS7w)2016/06/19(日) 10:56:44.35ID:3v1ECtbO0
>>193
そうだな。
まずは2chリーダー機能を
0199デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/20(月) 12:20:16.46ID:uuasGfzYp
ストーリーボードやxib開くのが重過ぎる。
あれってxmlだからブラウザみたいなもんじゃないの?
毎回ブラウザ的なものを起動し直してるのかな?
0200デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/20(月) 13:14:32.27ID:w3MDWnf1a
お前は一体何を言ってるんだ?
0201デフォルトの名無しさん (ワッチョイ 0d7b-o3Bz)2016/06/20(月) 15:19:11.56ID:8rKuoF4g0
>>199
単純にマシンパワー不足なのかも。
どのスペックで運用してるの
0202デフォルトの名無しさん (オイコラミネオ MM54-ntlg)2016/06/20(月) 18:39:29.83ID:KK4iLTF5M
Swift 3.0になってTable Viewが扱えなくなってしまった(´・_・`)
0203デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/20(月) 18:41:34.67ID:yi+M/Qao0
>>201
2011のMBP13インチで8Gメモリ
古いからPhotoshopとかでも10レイヤーくらいで重くなったりするんだけども
それでもストーリーボードに関してはファイル選択しちゃったら(別ファイルを選択するつもりで上を通り過ぎるだけでも)10秒くらいは白画面で操作受け付けなくなる
重さと機能が見合ってないっていうか何ていうか、不自然な重さなのである。
0204デフォルトの名無しさん (ワッチョイ 8317-ntlg)2016/06/20(月) 18:49:48.08ID:3xIqWxcV0
>>202
どういう事?
0205デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/20(月) 19:00:29.65ID:yi+M/Qao0
>>202
一応見たけどUITableViewは普通にあったね
前のtouchesBeganみたいにコンバートしきれない変更が多いのかな?
0206デフォルトの名無しさん (ワッチョイ c693-ntlg)2016/06/20(月) 19:50:10.70ID:A1bMd2Vm0
dataSourceとdelegate繋ぐとnserrorになっちゃう(´・_・`)

2.0では動いてたよ

自分の知識不足が原因だよ
0207デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/20(月) 19:56:53.29ID:iL87O4mO0
>>203
MacBook Pro (15-inch, Mid 2010) だけど、初期のストーリーボードならファイル選択時に若干もたついても、長くてせいぜい1,2秒程度だよ。
0208デフォルトの名無しさん (ワッチョイ 353c-nyB3)2016/06/20(月) 23:42:08.93ID:E8+QxyeU0
SSD買ってもらえないんじゃないの。
0209デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/21(火) 09:42:50.30ID:zc7y1ZPP0
>>208
>>207だけど、システムはSSDにしてたわ。
HDDのままだとやばいんだろうか?
0210デフォルトの名無しさん (オイコラミネオ MM54-ntlg)2016/06/21(火) 18:11:49.82ID:/7mwTcxAM
UIViewControllerクラスのisKind(of:)プロパティ使えん

ラベルがないとか、つけるなとか、エラーがうるさいよ(´・_・`)
0211デフォルトの名無しさん (オイコラミネオ MM54-ntlg)2016/06/21(火) 18:12:36.90ID:/7mwTcxAM
メソッドだったね(´・_・`)
0212デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/21(火) 19:05:37.98ID:QnyxuFLwp
その感じだと前置キーワードが前置詞だけなのはobjcでも推奨されてんのか
聖遺物が犯されるとジョブス信者がファビョりそうだなぁ
0213デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)2016/06/22(水) 20:03:00.10ID:GmEeJgO10
is じゃいかんの
0214デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/24(金) 15:39:30.61ID:D76kG+ZLM
>>213
それでよかった
0215デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/24(金) 15:40:37.07ID:D76kG+ZLM
>>206
いままで使っていたメソッドがUITableViewDataSourceプロトコルに移行しておったのが原因じゃった
0216デフォルトの名無しさん (ワッチョイ eb3c-CM8X)2016/06/28(火) 08:11:11.52ID:ZCbqkJp10
Swift 1の頃から関数とメソッドでラベルの規則がちげーのと、
メソッドの1個めだけ規則がちげーのがきめーと言い続けてきたが
ついに全部ラベルつきに統一されたか
俺には先見の妙があったな、ガハハ!
でもgetValue()とかどうすんだ
get(value) とかになんの?
0217デフォルトの名無しさん (ササクッテロ Spb7-gJJb)2016/06/28(火) 08:33:38.45ID:cmOfDhcRp
getValueとかバカじゃねーの、ガハハハ
0218デフォルトの名無しさん (ササクッテロ Spb7-Z7EN)2016/06/28(火) 09:17:13.52ID:jB07YuJvp
>>216
Value型ならなる
getStringはget()->String
引数名と型が一致してなければそのまま
0219デフォルトの名無しさん (ワッチョイ 97c9-CM8X)2016/06/28(火) 12:41:44.71ID:SzDvpUGs0
>>216
>先見の妙
0220デフォルトの名無しさん (オイコラミネオ MMef-iWcA)2016/06/28(火) 12:54:20.13ID:7+ajw/ORM
>>216
中興の祖
0221デフォルトの名無しさん (アウアウ Sa3f-CM8X)2016/06/28(火) 13:01:48.97ID:5TI3Z5IKa
>>216
漁夫の利
0222デフォルトの名無しさん (ササクッテロ Spb7-zCkP)2016/06/28(火) 13:08:45.58ID:cmOfDhcRp
>>221
それは違う

マジレスすると
var value {
return hoge
}
にしろというね

イマドキgetValueなんてメソッド定義するアホは逝ってよし
ObjCですらそんな文法は古臭い
0223デフォルトの名無しさん (アウアウ Sa3f-CM8X)2016/06/28(火) 13:21:34.28ID:5TI3Z5IKa
>>222
他山の石
0224デフォルトの名無しさん (ワッチョイ ef4e-DaWq)2016/06/28(火) 13:50:01.93ID:q+ED03Ko0
仏滅の政
0225デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/28(火) 17:49:18.46ID:bxuSRhA5M
iOS用のWatchKitの様なTaptic EngineのAPIってある?
0226デフォルトの名無しさん (ワッチョイ eb3c-CM8X)2016/06/28(火) 21:39:45.95ID:ZCbqkJp10
>>222
プロパティにするのはちょっと違うと思う
その例みたいにただhogeを返すだけならいいが
処理が重い場合はプロパティ感覚で気軽に
呼びだされちゃ困るからわざと関数にすることがある
var value : String {
  return m_hoge;
} // プロパティでok
func getValue() -> String {
  var hoge = "";
  // 重い処理でhogeをいじる…
  return hoge;
} // 重いので関数で!

get(_ value: Void) -> String にするのがいいのかな
0227デフォルトの名無しさん (ササクッテロ Spb7-zCkP)2016/06/28(火) 22:10:08.77ID:cmOfDhcRp
重いなら非同期のブロックで返せよ・・・
重いから云々で切り替えるって10年も前の意識だろ、イマドキその区分け基準はないわ

上でも挙げたけど@objcつけたら滑稽なI/Fになるからやめれ
Swiftだけで綺麗に見えてれば良いんだよwwwって意識高い系ならもうそれで良いけどさ
0228デフォルトの名無しさん (アウアウ Sa3f-CM8X)2016/06/28(火) 22:16:03.67ID:4sGhMYiSa
Swifterはメンバ変数にm_とかいう臭ぇプレフィックスはつけねーんだよ
0229デフォルトの名無しさん (ワッチョイ eb3c-jO4j)2016/06/29(水) 00:16:01.87ID:ebP7vD7n0
Swifterの意識の高いプレフィクス

_ プライベートを意味する
__ Apple様しか使わないことを意味する
___ Apple様の中でも上級Applerしか使ってはいけないことを意味する
0230デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/29(水) 16:49:57.04ID:+RWPkAMOM
プロトコルやデリゲートを追加する場合推奨される記述は
extension?クラスの横に,でプロトコルやデリゲートを追加?ケースバイケース?
0231デフォルトの名無しさん (アウアウ Sa3f-CM8X)2016/06/29(水) 16:54:38.15ID:2MzgcDxya
ケースバイケースバイケース
0232デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/29(水) 17:13:42.56ID:+RWPkAMOM
ありがと( ^ω^ )
0233デフォルトの名無しさん (ワッチョイ eb3c-CM8X)2016/06/29(水) 21:48:12.52ID:wGAYe3WS0
>>227
非同期で返すほどではないが何度も呼ばれるとまずい程度には遅い関数って、
結構あるんだよ。
配列や文字列を線形探索する関数とか。
// メンバとしてもつ配列の最大の値のインデックスを返す関数
func getMaxValueIndex() -> UInt {
 var index = -1 // -1ならNotFound
var max = 0
 for (i, value) in m_values {
  if value > max {
   index = i;
   max = value;
  }
  return index;
}
こんなのを var maxValueIndex なんてプロパティにして、
変数感覚で気軽に呼び出されたらまずいでしょ。
0234デフォルトの名無しさん (ササクッテロ Spb7-gJJb)2016/06/29(水) 22:07:32.64ID:mM18OEEyp
普通に考えたらArray.countの中の人と同じように
キャッシュするか、配列の変更時に事前計算だろ?
何が問題なんだろうね

>>229
実際、Foundation.swiftの実装でプレフィクスどうなってるか気になるな
極力アポー様の教えに従いたいので知りたいよ
0235デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/06/30(木) 00:56:02.59ID:MEE6GOQUa
ちんこ
0236デフォルトの名無しさん (ワッチョイ 9910-/PL2)2016/06/30(木) 03:27:22.89ID:msjqUaEK0
>>234
中身が変更されまくるものだったらキャッシュしてもしょうがないし、使用頻度を考えると変更時に事前計算するのは避けたい場合もあると思うけど。
だから何でもかんでもプロパティにするのはよろしくないとは思う。

ただ、プロパティとgetなんちゃらというメソッドで計算コストが違うという共通認識を皆が持ってるかというのは疑問
個人的にはfindMaxValueIndexとかいうメソッド名にしてくれたら時間かかりそうだなって思えるけど
0237デフォルトの名無しさん (ササクッテロ Spc9-s3GQ)2016/06/30(木) 08:37:21.45ID:sNJzBkxbp
そんな自分都合の思い込み(言い訳)は知らんよ
あと、getなんちゃらとfindなんちゃらの計算コストが違うという共通認識を皆が持ってるか疑問
という疑問も持った方がいいな、コメントにでも注釈付けとけ
0238デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/06/30(木) 09:12:12.94ID:EbiLSiSEa
ボトルネック探しやチューニングはある程度完成してからまとめてやれ
>>236はA型っぽいな
0239デフォルトの名無しさん (ワッチョイ 9910-/PL2)2016/06/30(木) 13:31:10.66ID:msjqUaEK0
>>237
前半分は>>234に対する疑問で、
「普通はキャッシュや事前計算」って言える程普通じゃないだろうってことを言いたいだけだったんだけど、大抵のケースでキャッシュや事前計算で解決できると思ってるのだって思い込みだろう?

後ろ半分の話は>>233に対する疑問でプロパティの代わりにgetメソッドが用意されてたら沢山呼ばないほうがいい風潮になってるの?ってことを聞きたかったんだけど
個人的にはgetとfindだったらfindは毎回計算してそう、と言っただけで皆そう思ってるはずだからこうするべきと言ってるわけじゃないのになんでget/findの共通認識がどうのっていう言い方で返されるのか疑問
0240デフォルトの名無しさん (アウアウ Sa61-bRa0)2016/06/30(木) 13:41:20.24ID:nPgPHtAra
高コストである旨はコメントに書いておけばいい
はい、解決
0241デフォルトの名無しさん (ササクッテロ Spc9-s3GQ)2016/06/30(木) 16:03:43.53ID:sNJzBkxbp
長い三行で
0242デフォルトの名無しさん (オイコラミネオ MMb4-oxCW)2016/06/30(木) 17:46:55.60ID:UTC/JhrUM
Tab BarとPage Controlを組み合わせたUIどう思う?
(iOS Human Interface Guidelinesと照らし合わせてみて)
0243デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/06/30(木) 17:59:01.00ID:1eFZP5OCa
普通
0244デフォルトの名無しさん (ワッチョイ 613c-R7o+)2016/06/30(木) 21:24:06.00ID:LYDVxhPg0
Twitterとかもやってるし別に普通だな
0245デフォルトの名無しさん (ワッチョイ 1e93-oxCW)2016/06/30(木) 22:06:23.41ID:Y+MKvNri0
レスありがとうね( ^ω^ )
0246デフォルトの名無しさん (オイコラミネオ MMb4-oxCW)2016/07/01(金) 10:42:50.38ID:kTHfiOpEM
iOSのiTunes StoreライクにTab Barの色をView毎に変えるにはどうすればよいですか?
0247デフォルトの名無しさん (ワッチョイ e0c9-dfX6)2016/07/01(金) 11:05:47.74ID:iZbsZJ7a0
>>246
[SDK]iPhoneアプリ開発初心者質問箱46[touch][iPad] [無断転載禁止]©2ch.net
http://potato.2ch.net/test/read.cgi/mac/1460975101/
0248デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/04(月) 01:39:07.20ID:jde26vCm0
たまに遭遇するgetオンリーな操作子ウザイんだけど何であんなものが必要なわけ?
例えば 配列.last で最後のやつ弄りたいのにgetオンリーでエラーって誰得?
0249デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/07/04(月) 02:00:42.87ID:0HQjDP9Aa
お前のようなアホに勝手に配列の中身を変えられないようにするため
0250デフォルトの名無しさん (ワッチョイ dd91-s3GQ)2016/07/04(月) 09:08:10.81ID:/fDVk2WK0
お前以外が特に得しないsetterは別にいらんけど
俺得なインターフェースが欲しいなら適当にextensionで追加しろ
0251デフォルトの名無しさん (ワッチョイ e0c9-dfX6)2016/07/04(月) 16:07:03.69ID:tmQPI5vq0
lastにsetとか、最後尾を入れ替えるのか、最後尾に付け足すのか分かりづらいだろ
0252デフォルトの名無しさん (アウアウ Sa25-dfX6)2016/07/04(月) 16:14:50.13ID:3xy2R967a
いやそういう問題ではないんだが...
0253デフォルトの名無しさん (アウウィフ FF25-PhU/)2016/07/04(月) 16:40:04.39ID:igr6hGQQF
appendよりもaddendの方が判りやすいというのなら同意したのに
0254デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/04(月) 16:58:30.84ID:luyT0NF10
>>251
最後尾に追加はappendでしょ
lastって普通最後尾のエレメントを指さないか?
0255デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/04(月) 21:24:07.43ID:7j/w943c0
ようするにこういうことでしょ
var array= [1, 1, 4, 5, 1, 4]
array.last = 1919
array // => [1, 1, 4, 5, 1, 1919]
0256デフォルトの名無しさん (ワッチョイ dd91-s3GQ)2016/07/04(月) 21:40:05.02ID:/fDVk2WK0
それはみんな分かってなんやかんや言ってるんだが...
0257デフォルトの名無しさん (アウアウ Sa25-dfX6)2016/07/04(月) 22:02:44.49ID:1KMIHZLQa
しかし、変なこと考える奴がいるもんだな
なぜそうなってるのかは考えようとせずとにかく自分の思い通りの動きをしないものが気に入らなくてしようがないんだろうな
0258デフォルトの名無しさん (アウアウ Sa61-gY7w)2016/07/05(火) 00:43:22.40ID:+KIX5k5ra
タプルの比較で質問です、
(1, "aaa") < (1, "bbb")
がtrueになるのはどうしてでしょうか、
< は未満だからfalseになると思うんですが
0259デフォルトの名無しさん (アウアウ Sa61-gY7w)2016/07/05(火) 00:54:02.88ID:+KIX5k5ra
すみません、自己解決しましたなんとなく
0260デフォルトの名無しさん (ワッチョイ e0c9-dfX6)2016/07/05(火) 00:56:10.26ID:ujdX1xtz0
/// A [lexicographical order](https://en.wikipedia.org/wiki/Lexicographical_order)
/// over tuples of `Comparable` elements.
///
/// Given two tuples `(a1, a2, ..., aN)` and `(b1, b2, ..., bN)`, the
/// first tuple is `<` the second tuple iff `a1 < b1` or
/// (`a1 == b1` and `(a2, ..., aN) < (b2, ..., bN)`).
public func <<A : Comparable, B : Comparable>(lhs: (A, B), rhs: (A, B)) -> Bool
0261デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/05(火) 07:52:58.12ID:SiEQh+4z0
何で{ get }にするのか未だに解ってないんだが、、
配列.lastの所を勝手に書き換えようと思えば配列[配列.endIndex - 1 ]で書き換えられる訳だし、単に不便な関数って認識しかまだ無い
0262デフォルトの名無しさん (アウアウ Sa25-dfX6)2016/07/05(火) 09:55:20.08ID:hBbm7EY+a
なんで最後の要素だけ書き換えたがるのか知らんが、そんなプロパティ?必要か?
どうしても必要ならエクステンション使って自分で書けばいいだろ

コード読んでて、例えば配列の要素を検索するような明らかに配列の更新が不要な場面で、配列の要素を書き換え可能なプロパティが使われてるとちょっと不安にならね?
0263デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/05(火) 10:36:43.37ID:R42S1A9Q0
>>261
配列で置換する場合って、再生成するコストかかるからじゃねーの?
lastだけgetで欲しいのに内部でいちいちコピーされてたら遅くてたまんねーよ。
0264デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/05(火) 10:51:08.99ID:R42S1A9Q0
263だけど、なんかバカなこと書いたな。setの時だけコピーすりゃいいだけの話だから違うな。
あれだ、lastってnuallableだからemptyの時の動作が不定になるから・・・とか?
0265デフォルトの名無しさん (アウアウ Sa25-dfX6)2016/07/05(火) 10:52:33.32ID:hBbm7EY+a
いや要素書き換えたぐらいで配列のコピーはされんだろ
0266デフォルトの名無しさん (ワッチョイ e0c9-dfX6)2016/07/05(火) 11:42:26.00ID:ujdX1xtz0
lastは結果的にlastな要素なんであって、結果から逆算するようにセットするようなAPIは気持ち悪いわ
この気持ち悪さが分からんのはセンス無い
0267デフォルトの名無しさん (ササクッテロ Spc9-s3GQ)2016/07/05(火) 12:10:57.64ID:7+5nTqy/p
気分的な問題で要らないというアポー信者と
気分的な問題で要るという>>261の対立

>>261は宗教戦争するより、そういう教えもあるんだなと他宗教を許容しろや
0268デフォルトの名無しさん (スプー Sdb8-txjP)2016/07/05(火) 12:46:13.40ID:/c9Dk8+hd
a=3
a%2=0

でaが2になるような気持ち悪さ?
0269デフォルトの名無しさん (ササクッテロ Spc9-oxCW)2016/07/05(火) 13:35:55.55ID:Q726Zdnzp
開発中の言語なんでやろうと思えば何でも出来るけど、一般的に多用される用途に合わせて制限を設ける事でプログラマのミスを減らす
そんな言語思想で初心者がミスし辛い設計になっていると思う
俺もまだ勉強中なんで異論は認める
0270デフォルトの名無しさん (ワッチョイ 7a13-PhU/)2016/07/05(火) 13:39:56.96ID:3gyxqmIo0
Erlang最強ですねわかります
0271デフォルトの名無しさん (ササクッテロ Spc9-s3GQ)2016/07/05(火) 14:13:12.69ID:7+5nTqy/p
>>268
左辺に式を置く気持ち悪さが先行したぞ
0272デフォルトの名無しさん (スプー Sdb8-txjP)2016/07/05(火) 20:43:09.63ID:t4nMSGt4d
じゃあ
a.mod2=0
0273デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/06(水) 08:03:13.76ID:j5MI0TQH0
結局誰もわかってねーじゃねーか!( *`ω´)
.lastだけじゃ無く他にもいっぱいReadOnlyの奴あるからね!

と言ってもstartIndexとかendIndexは普通に納得なんだわ
.lastは『配列が空の時にnilが帰ってくるから』ってことで納得しようとも思ったけど
だったら他のやり方でもnilの可能性あるし.lastだけ{ get }にする意味があーもーマジわかんねーー
何でReadOnlyにしたのかコメントくらい書いといて欲しかったわ
0274デフォルトの名無しさん (ワッチョイ 9717-oxCW)2016/07/06(水) 08:19:38.69ID:Dt4/s9Lw0
>.lastは『配列が空の時にnilが帰ってくるから』ってことで納得しようとも思ったけど
は?
0275デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/07/06(水) 09:25:41.67ID:qN9AduM4a
>>273
分かってねーのお前だけだから
0276デフォルトの名無しさん (ササクッテロ Spc9-s3GQ)2016/07/06(水) 10:12:42.12ID:5t5icW6ip
getter/setterがセットで存在しないと許せない教だというのはよく分かるぞ
俺も昔はその宗教しか知らなかったからな
経験積んだら理解できるようになるぞ、小僧
0277デフォルトの名無しさん (ワッチョイ 1e4e-oxCW)2016/07/06(水) 10:44:24.11ID:R/PvvFcq0
firstもあるんだろ?
0278デフォルトの名無しさん (ササクッテロ Spc9-dfX6)2016/07/06(水) 11:10:18.22ID:aB9cuo4xp
もしlastで値の変更が許可されていたとして、最後から2番目とか3番目の値を変更したくなった時はどうするつもりなんだろ
hoge.last = 100
hoge[hoget.count-2] = 200
hoge[hoget.count-3] = 300
とかするんか?
firstやlastには、配列を設計する時の定型的な役割があるんだけど、まぁこいつには分からないだろうな
0279デフォルトの名無しさん (ブーイモ MMb8-s3GQ)2016/07/06(水) 11:20:47.29ID:sEtBaoStM
結局setできないようにしたのは何でなの?
コレクションによってはオブジェクトの参照で済む場合とコピーが必要になる場合があってifの仕様が統一出来ないから?
0280デフォルトの名無しさん (ササクッテロ Spc9-75Z/)2016/07/06(水) 11:32:08.44ID:5t5icW6ip
setできないようにしてるんじゃなくて、getできるようにしただけだからなぁ
ObjCにもreadonlyプロパティは大量にあるし、C#やGoの他言語もgetterだけのアクセサあるわけで

逆になんで俺得I/Fをextensionで追加、というのが理解できないのか聞きたい
0281デフォルトの名無しさん (ワッチョイ 9717-oxCW)2016/07/06(水) 12:10:10.69ID:Dt4/s9Lw0
>>280
>setできないようにしてるんじゃなくて、getできるようにしただけだからなぁ
ものすごく明快な解答
0282デフォルトの名無しさん (ワッチョイ ddc9-4ceA)2016/07/06(水) 14:08:08.31ID:MAvTBHdK0
構造体の多重配列をつくって、
NSKeyedArchiverで保存したいんですけど。
どうすればいいですか?
0283デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/07/06(水) 14:59:44.92ID:rM+MpLbOa
たまにはググってみろよ
0284デフォルトの名無しさん (ササクッテロ Sp1f-cFDw)2016/07/07(木) 02:42:59.97ID:wKF073iRp
getできるようにしただけなのは分かるんだけど、何でsetの記述しないのかが分からないんだよ。
extentionで改造してもいいんだけど意味不明な縛りのある言語って、、
やっぱ何らかの理由があると思うんだよなー
0285デフォルトの名無しさん (ワッチョイ 333c-6uh3)2016/07/07(木) 04:50:54.78ID:iQ3oQoSL0
ElementがOptional型だとおかしなことになりそう
0286デフォルトの名無しさん (ササクッテロ Sp1f-oo3f)2016/07/07(木) 07:32:54.39ID:XlMar3jmp
var hoge: Int?
で問題なかろう

数日付き合ったがこの宗教家はダメだな、、、
自分の信仰以外はセンスでの理解を拒否するから
setterが存在しない全てのプロパティになんで?を問いてくる

自分だけは信者じゃないと思ってる信者は怖い
まだ自覚あるアポー信者の方がマシだわ
0287デフォルトの名無しさん (ササクッテロ Sp1f-oo3f)2016/07/07(木) 07:49:21.83ID:387AC1iyp
理論武装を求めるのは意識高いから
swiftは意識高い系言語だから仕方ないね
0288デフォルトの名無しさん (スプー Sdbf-oo3f)2016/07/07(木) 08:07:01.67ID:sSwL/NX1d
全然違う角度からの話だけれど、ハードウェアが理解(=コンピュータの原理)が解っていれば、readサイクルと、writeサイクルが別物で有る事がわかる。
データバスに接続される物は、必ずしもメモリとは限らないと言う事も当然理解できるであろう。

例えば、タイマが接続されているとして、
書きこみ(=setter)は、パラメータの設定
読み込み(=getter)は、読み出しデータには意味が無く、読み出し行為によって、タイマのリセット
と言う回路が組まれていたとしたら、書き込みに対して、非可逆な動作をする。




これも、理解できないのかな?
0289デフォルトの名無しさん (スプー Sdbf-zDc6)2016/07/07(木) 08:21:06.48ID:8Wdaz3Psd
isEmptyが{get}なのと同じだろう。
そういう抽象化ってだけだ。
[0]や[count-1]のgetは[1]や[2]などに比べてわざわざ抽象化したいぐらい利用頻度が高いけど、setの場合はそうではないから抽象化がされていない。
必要性が低い操作を作らないのは、直交性と疎結合を守るために大事なことだよ。
0290デフォルトの名無しさん (ブーイモ MM9f-oo3f)2016/07/07(木) 08:31:54.39ID:ls5vBuF8M
すでに用途が明確ならsetterを用意するなんて考えもしなかったってこともあるだろうけど、
ユーティリティクラスのAPI設計者なら、getter作った時点でsetterどうしようかなって普通は考えるだろ。
そのときに何らかの意図や判断があってsetter外したのだと思うのだけど、単にgetter用意しただけで納得できるとか、普段から何も考えてないとしか思えん。
0291デフォルトの名無しさん (ブーイモ MM9f-oo3f)2016/07/07(木) 08:41:15.17ID:y9gRN/nxM
一部話が噛み合ってないようだが、getterしかないプロパティ、setterしかないプロパティなんておかしい、なんて誰も主張してない(たぶん)。
あくまでlastがどう意図でRead Onlyになったのか知りたいだけ。
0292デフォルトの名無しさん (ワッチョイ ef4e-bT3c)2016/07/07(木) 08:43:45.84ID:Y6ZZl/xS0
インデックスでアクセスすると範囲外エラーになり得るから、
よく使うfirstとlastにはnilを返すgetterがある。
0293デフォルトの名無しさん (ワッチョイ 4720-zDc6)2016/07/07(木) 08:55:53.91ID:SN7TGrpx0
>>291
ここで喚いても答えなんてわからんだろ
生みの親に直接聞いてこいよ
0294デフォルトの名無しさん (アウアウ Saff-7VFp)2016/07/07(木) 10:08:20.85ID:OAHH8Qcfa
配列のfirstやlastは、配列要素の追加や削除を行うルーブの中で使用したり、配列からFILOのスタック構造とか、FIFOのキューなんかを設計する場合にすごく便利な
プロパティ(/メソソッド)だけど、firstやlastのセッターの利用が想定される一般的な場面なんてない
それはもうソフトウェア設計者としての根本的なセンスの問題
分かる人はすぐピンとくるし、分からん奴は何で?と思うぐらいの感覚なんだろう

リードオンリーなクラス(/構造体)属性に無闇にセッターはつけるのは全体的なアクセシビリティーのポリシーに関する問題もあるが、もちろん、コンパイル時のコスト、
バイナリーサイズへの影響なども考慮する必要がある。OSが提供する広く使われるライブラリであれば尚のこと極力無駄は省かなければならない

抽象化とはそういうことの積み重ねであって、例えば設計者がベースクラスに付与した属性の微妙なずれが、継承先のクラスや、それに委譲するクラスの全体的なポリシー
に多大な影響を与えることになる。
例えばSwiftの構造体は値型だけどパフォーマンスを考慮してCopy on writeの設計にしてあり、一つのセッターの存在がバイナリー全体に影響を与える

どうせだしついでにセッターもつけとくか的な発想でつけるようなものではない
0295デフォルトの名無しさん (アウアウ Saff-7VFp)2016/07/07(木) 10:12:29.03ID:OAHH8Qcfa
あとついでに、構造体の変更メソッドになぜわざわざmutatingをつけないといけないのかも考えてみるとその辺の設計思想に関するヒントになるだろう
属性のちょっとした変更が裏側で与える影響は見た目以上に大きいのだよ
0296デフォルトの名無しさん (ワッチョイ 333c-7VFp)2016/07/07(木) 10:21:00.09ID:TrKbkRd20
>>248,261,273だけど他は俺じゃないからなー
なんか俺一人で暴れてる感じになってたから一応。

>>293
>>291は俺じゃないんだがマジで聞いてみたいわ。イライラする。

明確な答えが出ないってことはみんなこういうの引っかからずに受け入れちゃうんだな。。

あと、多分だけど答え出たかも。
.lastってコンピューテッド・プロパティなんだわ。だからgetしかできない。
setできたとしても配列[count-1]にsetされるわけではなくて”var last”にsetされちゃう。
setter{}に配列[last]へジャンプしてセットするプログラムを書くこともできるかもしれないけど(できない?)面倒だから作ってないんじゃないかな。
、、と自分がスッキリするためにこじつけた
0297デフォルトの名無しさん (ワッチョイ 333c-7VFp)2016/07/07(木) 10:27:08.84ID:TrKbkRd20
>>294,295
悪い、書いてる間に更新されてて見てなかった。
そういう感じなんだろうなと思って考えてたけど、そこまで詳しくないから俺にはその路線では解に到達できなかったよ。
0298デフォルトの名無しさん (オイコラミネオ MM3f-zDc6)2016/07/07(木) 10:30:22.32ID:Jhs3qZTiM
https://forums.developer.apple.com/community/xcode/swift
聞いてきなよ
0299デフォルトの名無しさん (スプー Sdbf-zDc6)2016/07/07(木) 11:45:22.91ID:8Wdaz3Psd
>>291
readonlyにする理由やsetterを付けない理由があるわけじゃない。
setterを付ける理由が無いんだよ。
0300デフォルトの名無しさん (ワッチョイ 333c-7VFp)2016/07/07(木) 11:58:28.99ID:TrKbkRd20
>>299
言うていい?
配列の最初と最後って結構弄ること多くないか?俺だけ?
まあもう俺は腹に落としたからいいんだけど。
0301デフォルトの名無しさん (スプー Sdbf-zDc6)2016/07/07(木) 12:11:22.45ID:8Wdaz3Psd
>>300
配列の最初と最後が他の要素に比べて差し替えることが多いとは思えない
配列というデータ構造を選んだ時点でランダムアクセスの機能を必要としてるんだから
最後を差し替えことが多いならstackを、最初を差し替えることが多いならqueueを使うべきだね
0302デフォルトの名無しさん (ワッチョイ c35b-oo3f)2016/07/07(木) 12:18:17.48ID:VBlRVTQq0
last に nil を set する場合、last を削除するのか、配列の長さを 0 にするのか、はたまたなにもしないのか
特に初学者にとって直感的でない動作になってしまうんではないかな
0303デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 12:19:00.86ID:XegmBRIM0
多い少ないの問題じゃない
何度か言ってるけどlastが因→果の一方向のAPIだからってただそれだけや
結果から逆算するようなAPIは、APIデザインの一般論として普通やらない

てかまずlastというAPIの意図を理解できてないと思われる
ただ[count-1]の値を変更することが、last {get} に対する対象な操作であるということがまず自明ではない

「最後の要素を変更するショートカットAPI」を新たに付け加えるとしても、現状のlast { get }に対するlast { set }にするのではなく、別の新しいchangeLastItemメソッドなりにするべき
0304デフォルトの名無しさん (ササクッテロ Sp1f-KEJA)2016/07/07(木) 12:44:46.38ID:AxQVBhdqp
>>302
ちょっとズレてる
原因ありきではなくて目的ありきなんだよ
そもそもfirstやlastにセッターとして利用は想定されていない
0305デフォルトの名無しさん (ワッチョイ d310-GJIm)2016/07/07(木) 13:09:49.85ID:q0aQglkO0
>>300
どんなケース?
配列の先頭や末尾を削除したり、それぞれの先にさらにもう一つ要素を付けるというのはよくあるけど、単純に要素を置き換えるというケースは個人的にはあんまり遭遇しないなぁ。
それか、置き換えるなら先頭、末尾に限らずどこも置き換える感じになるんだよなぁ。
0306デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 13:26:01.08ID:XegmBRIM0
>>304
別にずれてないっしょ
別の見方、経路で説明してくれてるだけ
本来一方向だから、無理矢理セッター側を考えるとおかしなことになるよっていう具体的な指摘
0307デフォルトの名無しさん (アウアウ Saff-xV+3)2016/07/07(木) 13:42:38.73ID:GsSIn1Kea
配列の最後の要素にnil入れたら配列の長さが0になるかもという発想は理解できない
0308デフォルトの名無しさん (アウアウ Saff-xV+3)2016/07/07(木) 13:47:14.09ID:GsSIn1Kea
配列の要素がオプショナル型なら値として普通にnilも受け入れるわけで、配列の最後の要素にnil入れたら削除するかもという発想もちょっとナンセンスだな
0309デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 13:59:51.41ID:XegmBRIM0
>>307,308
順番が違う

lastは「最後の要素を返す、ただし配列が空ならnilを返す」プロパティ
これを逆にセッターとしてまじめに実装するなら「最後の要素を(右辺値)にする、ただし(右辺値)がnilなら配列を空にする」でなくてはならない
これはおかしい

では気を利かせて「ただし(右辺値)がnilなら何もしない」or「…nilなら削除する」とでもするか?
そうするとAPIの一貫性、対称性を破壊するし、「気を利かせた」部分の「何もしない」や「削除する」という動作が非常に予想し難くなる

なぜこういう困難が発生するかといえば、つまるところlastというAPIが因→果の一方向のread onlyなAPIとして意図されているからである

こういうことを>>302は指摘してくれてる
0310デフォルトの名無しさん (ワッチョイ ef4e-bT3c)2016/07/07(木) 14:09:48.71ID:Y6ZZl/xS0
もしsetterを作るならlastだけじゃわからない。
replaceLastかappend/addだろ。
firstならreplaceFirstかinsertFirstになる。
どちらも、配列が空でも最初/最後の要素にセットされるようにすればいい。
「last」だけってことにはならない。
0311デフォルトの名無しさん (アウアウ Saff-xV+3)2016/07/07(木) 14:14:25.91ID:GsSIn1Kea
>>309
「最後の要素を(右辺値)にする、ただし(右辺値)がnilなら配列を空にする」でなくてはならない

だからこの発想がおかしくない?

lastがnilを返すのは配列が空の場合だけじゃなくて、配列の最後の要素がnilの場合も当然nilを返す
だから、nilの代入 = 配列を空にする って想定がナンセンス

そもそもremoveLast()ってメソッドもあるのに
0312デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 14:24:16.41ID:XegmBRIM0
>>311
>lastがnilを返すのは配列が空の場合だけじゃなくて、配列の最後の要素がnilの場合も当然nilを返す

ちがうぞ

var a: [Int?] = [1,2,3,nil]
print(a.last) // Optional(nil)
a = []
print(a.last) // nil

最後の要素がnilの場合、nilではなく入れ子のnilを返す


>そもそもremoveLast()ってメソッドもあるのに
だから議論の順番が違う
0313デフォルトの名無しさん (アウアウ Saff-xV+3)2016/07/07(木) 14:42:40.56ID:GsSIn1Kea
オプショナルだろうが直値のnilだろうが

a[a.count-1] = nil

ってやってnilを代入できるだろ

a.last = nil なら配列を空にしようって発想は俺にはないな
0314デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 14:55:50.57ID:XegmBRIM0
>a.last = nil なら配列を空にしようって発想は俺にはないな
だから議論の順番が違うって言ってんだろ
無理矢理セッターを作ったらどんな奇妙なことになるかって話をしてるんだから

>a[a.count-1] = nil
>ってやってnilを代入できるだろ
それも論点がズレてんぞ
lastのセッターがもしあるならという想定で a[a.count-1] = nil と同等なのは、a.last = .some(nil) であり、 a.last = nil ではありません
[Int?]の場合lastの型はInt??です

議論の流れをつかめないうえにOptionalの理解もあやふやみたいだから、言ってもどうせ理解できんのだろうけど…
0315デフォルトの名無しさん (アウアウ Saff-xV+3)2016/07/07(木) 15:11:50.38ID:GsSIn1Kea
lastに強引にセッターを設けるなら、a.last = nil の挙動は素直に、a[a.count-1] = nilと同等にとるのが
普通の感覚だろうと俺は思うんだけど、そこに、やれその場合は配列を空にしようとか、要素を削除しようとか
の想定をして話を奇妙にしてるから、俺はそのことを>>302にレスしたんだけど
横から勝手に君が>>302の代弁を始めたんじゃん
そもそも>>302の本心なんて、>>302じゃない君にはわからんだろうと思うんだけど、そこも俺には奇妙だよ

実際、君の例のaの要素にnilを代入する場合は、a[3] = nil でオッケーなんだし
シンプルに考えればいいんじゃねと思うけどね
ま、なんにせよlastのセッターはいらんけどね
俺も君と議論するんじゃなくて、>>302のレスが聞きたいよ
0316デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 15:43:26.22ID:XegmBRIM0
>>315
それは普通の感覚じゃなくてOptionalをよく分かってない人の感覚
さらっとむちゃくちゃなOptionalの剥がし方を要求してる


>>302の考えを勝手に代弁するかたちになったのは、>>302に対してもごめんなさい
自分の考えを(あてこすって)勝手に述べただけでした
0317デフォルトの名無しさん (アウアウ Saff-xV+3)2016/07/07(木) 16:31:52.75ID:GsSIn1Kea
仮に強引にlastにセッターを設けたとして

var a:Array<Int?> = [10, 20, 30]

こういう配列の最後の要素にlastを使って別の値を設定する場合、
例えば、100なら、

a.last = 100

となるだろう
では、nilを代入したい場合は?

a.last = nil

と書くことを想定するのが自然だと思わない? lastの返却値はオプショナル型だけど、この代入でオプショナル型の無茶苦茶な剥がし方をしてるなんて感覚はない
それ以外にどう書くの?
a.last = nilで配列を空にしようとか、要素を削除しようなんて発想は出てきにくいと思うけどね

var b: Int??
b = 100
print(b! == 100) // true
print(b!! == 100) // true
0318デフォルトの名無しさん (アウアウ Saff-xV+3)2016/07/07(木) 16:48:44.78ID:GsSIn1Kea
これは、Swiftの配列がnilを要素に取りうることを理解していれば自然に湧き出てくる感覚であって
Dictionaryの場合は、キーがnilの要素は受け付けない(キーはHashableプロトコルに適合していることが条件なので)ので、nilの代入で要素の削除というのはすんなり受け入れられる
0319デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 17:09:56.93ID:XegmBRIM0
// 現状のlastのセッター側を「あえて」実装する場合の、論理的に最も素直な実装
extension Array {
var myLast: Element? {
get {
// 空ならnilを返す
return count == 0 ? nil : self[count - 1]
}
set {
if let newValue = newValue {
self[count - 1] = newValue
} else {
// nil なら配列を空にする
self.removeAll()
}
}
}
}
0320デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 17:10:45.49ID:XegmBRIM0
var a: [Int?] = [1,2,3]

a.myLast = 4
print(a) // [Optional(1), Optional(2), Optional(4)]
print(a.last) // Optional(Optional(4))

a.myLast = .some(nil)
print(a) //[Optional(1), Optional(2), nil]
print(a.last) // Optional(nil)

a.myLast = nil
print(a) // []
print(a.last) // nil

var b: [Int] = [1,2,3]

b.myLast = 4
print(b) // [1,2,4]
print(b.last) // 4

b.myLast = nil
print(b) // []
print(b.last) // nil

見て分かる通り、セッター側とゲッター側で対応が取れており一貫性がある
0321デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 17:11:22.27ID:XegmBRIM0
逆にお前の「自然な想定」ではこの(1)〜(5)でどうなるわけ?

var a: [Int?] = [1,2,3]
a.last = 4 // (1)
a.last = .some(nil) //(2)
a.last = nil // (3)

var b: [Int] = [1,2,3]
b.last = 4 // (4)
b.last = nil // (5)
0322デフォルトの名無しさん (アウアウ Saff-xV+3)2016/07/07(木) 18:18:31.26ID:KmYG+hkAa
.some(nil)ってのはどっからもってきたのかしらんけど
俺の想定では、(2)と(3)はどちらもnil設定、(5)は実行時例外もしくはコンパイルエラーだよ
少なくとも(3)、(5)で配列のクリアは感覚的にありえない
ゲッタが空の配列からnilを返すから、nilの代入なら空にするということに一貫性があるとは思えないし、そういう発想もない
0323デフォルトの名無しさん (ワッチョイ 333c-7VFp)2016/07/07(木) 19:05:21.61ID:TrKbkRd20
>>319
まあ、ミスっただけだとは思うが最後の”nilなら配列を空にする”ってのはおかしいな。
nilでも最後尾のエレメントがあるところに代入しないといけない。
nil代入できない場合はXcodeがエラー出してくれるからif let 自体いらないと思う。
lastと[count-1]は同じ動作じゃないとおかしい。
0324デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 19:09:15.66ID:XegmBRIM0
>>322
>.some(nil)ってのはどっからもってきたのかしらんけど
話にならんなぁ
ちゃんと意味のある外側のOptionalを無視しようとしてるから、.some(nil)はどっから持ってきたのとか言っちゃう

var a:[Int?] = [1,2,nil]
var b:[Int?] = []
このとき a.last と b.last には何が入ってる?
a.last == nil は true になるか?

>>323
お前もかw
もっと勉強しろ


あと感覚的にnilで空にするべきなんて一言も言ってないだろ
getの挙動から論理的に帰納するなら、nilで空になるべきではないかって言ってんだよ
そしてそれが奇妙に思えるっていうお前の感覚には別に反論してないよ
でも、少なくとも a.last = nil と a[a.count-1] = nil が同等であるべきという素人考えは受け入れられないわ、というだけ
ほんとすぐに議論を見失うやつだなあ
0325デフォルトの名無しさん (ワッチョイ 333c-7VFp)2016/07/07(木) 19:11:08.47ID:TrKbkRd20
>>301
ごめんちょっと理解できない。
・配列=ランダムアクセエスって何で?
・stack/queueって何ですの?
0326デフォルトの名無しさん (ワッチョイ 333c-7VFp)2016/07/07(木) 19:14:36.22ID:TrKbkRd20
>>324
ごめん意味わかった!
でもそれ[count-1]でやった時どうなるんだっけ?
0327デフォルトの名無しさん (ワッチョイ 333c-7VFp)2016/07/07(木) 19:29:35.63ID:TrKbkRd20
>>324
やってみた、2つの意味のnilを混同してnilが帰ってきたわ。
まあ、範囲外に代入しようとしたらエラーメッセージ出るし
まだ不都合は感じてないわけだけども。。
0328デフォルトの名無しさん (ササクッテロ Sp1f-xV+3)2016/07/07(木) 20:15:40.77ID:AxQVBhdqp
>>324
.some(nil) が、配列の要素のオプショナル型にnilが入ったものだってのは分かってるけど、それを擬似コードじゃなくて
コンパイルが通る具体的なコードで示してほしかったって意味で、「どっから持ってきたのかしらん」ってかいた。
会話がかみ合わないなw それとも俺がオプショナルを理解してないことにしたいのか

そもそもの話の発端は、>>302が、lastにセッターを設けると、nilの代入で配列を空にすることが実装の候補になりうるという話だったから、俺はそれはずれてるし奇妙だと言った。
そして君は、それは感覚がおかしいといい、空の配列からnilが返るなら、nilの代入で配列を空にするのが一貫性があるといい、今度は、俺がnilの代入で空にすることをおかしいと思う感覚には別に反論しないという。
論点と主張がずれてきてんのは君の方だよ。あと言葉遣いも
0329デフォルトの名無しさん (スプー Sdbf-zDc6)2016/07/07(木) 21:27:10.05ID:8Wdaz3Psd
>>325
予想外。これが理解出来ないって言われたら、配列型として備えるべき最低限の機能について話すことなんかできないわな。
0330デフォルトの名無しさん (スプー Sdbf-zDc6)2016/07/07(木) 21:29:14.04ID:8Wdaz3Psd
a.last == a[a.count-1]はtrueになるの?
0331デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/07(木) 21:56:35.50ID:XegmBRIM0
>>328
まだやんのw

擬似コードじゃなくてコンパイル通るコードしか示してないぞ
.some(nil)の書き方は3.0のもので2.xでは大文字の.Some(nil)だけど修正する箇所はそこだけで3.0でも2.xでも通るはず

>>320だけちょっとミスってたけどコード中の
print(a.last)、print(b.last)はぜんぶ
print(a.myLast)、print(b.myLast)で、setしたものとその後にgetしたものを比較する意図だった
(コンパイルも通るし、getの中身はlastもmyLastも同じなので結果も変わらない)

たぶん咬み合わない理由は、俺は論理的こうあるべきということと、直感からこうあってほしいということをずっと分けて考えてるけど
あんたはこの2つをごっちゃにしてる、というか直感で設計するということしか考えてなさそうなことと
あと >>308 の時点からずっと、配列の要素がOptionalの場合に、要素として入ってるnil、lastから返されるnil、lastから返される.some(nil)、の3種類のnilをごっちゃにしてたっぽいこと(否定するんだろうけど)なんだろうな

ということで俺の中で決着ついたから俺はもういいわw
0332デフォルトの名無しさん (ササクッテロ Sp1f-xV+3)2016/07/07(木) 23:31:04.62ID:AxQVBhdqp
>>331
.Some(nil)という書き方は知らなかった。てっきり擬似コードかと..すまない。

言いたいことはわかった。まぁ俺が感覚だけに頼った希望的意見だけ述べてたんだろう。その点も謝る。>>302もそういう観点から言ったのだとしたら同じく謝るよ。
まぁそれでも、空の配列からnilが返るからnilの代入で配列を空にしようという発想が受け入れられないという、lastプロパティのコンテキストを無視した論理的でない直感的な主張は曲げれないんだけど。

あ、俺ももういいからレスはいらないよ


>>330
a.lastは配列の最後の要素のオプショナル型を返す。配列が空ならnilを返す。
a[a.count-1]は配列の最後の要素を返す。配列が空なら例外を投げる。
型が違うから両者の == 比較はtrueにはならない。
0333デフォルトの名無しさん (ワッチョイ dbd4-zDc6)2016/07/08(金) 01:00:36.86ID:M2+Y2VsA0
>>332
比較演算子は自動unwrapされると聞いたが、二重optionalの場合はどうなるんだ?
0334デフォルトの名無しさん (ササクッテロ Sp1f-cFDw)2016/07/08(金) 02:40:48.84ID:YUHkqKpPp
池沼しかいないのかよ
分かってるんなら分かりやすく完結におしえてやれよな
それができてないから無駄にスレが伸びてるんだぜ?まったく。
0335デフォルトの名無しさん (ササクッテロ Sp1f-cFDw)2016/07/08(金) 09:45:15.60ID:fs/TH3E9p
イクイク
0336デフォルトの名無しさん (アウアウ Saff-7VFp)2016/07/08(金) 10:33:42.65ID:QoN3Vbr1a
今まで.Some(hoge)って意識してなかったけどオプショナルのオプショナルのオプショナルにnil代入するのってどれが正解なんだろ

var a:Int???
var b:Int???
var c:Int???

a = nil // nil
b = .Some(nil) // Optional(nil)
c = .Some(.Some(nil)) // Optional(Optional(nil))

if let x = a { print (x) }
if let y = b { print(y) } // nil
if let z = c { print(z) } // Optional(nil)

bはないだろうけど、cの書き方が正解なんかな。気持ち的にはaだけど
でも下の2つは結果が同じなんだよな

a = 10
if let x = a { print(x) } // Optional(Optional(10))

c = .Some(.Some(10))
if let z = c { print(z) } // Optional(Optional(10))

頭こんがらがってきた
オプショナルの連鎖はほとんど使わないけど、配列が要素になってる配列から、a.last.last.last なんて取り出しかたする時に出てきそうだ
0337デフォルトの名無しさん (ワッチョイ 333c-6uh3)2016/07/08(金) 11:49:16.05ID:WHa+AvWD0
Optionalを多重にしてはいけない(戒め)
0338デフォルトの名無しさん (ワッチョイ 333c-77u/)2016/07/08(金) 12:31:10.68ID:UF+RGGyc0
「命題Aが真なら、現象Bが起きる(だから命題Aは偽である)」と言ってる人に、
「現象Bはおかしい(だからお前は間違ってる)」と言っておかしくなってる。

だから、
> まぁそれでも、空の配列からnilが返るからnilの代入で配列を空にしようという発想が受け入れられないという、lastプロパティのコンテキストを無視した論理的でない直感的な主張は曲げれないんだけど。
というような現象Bを引き起こす命題A
0339デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/08(金) 13:02:17.95ID:goWM3aH00
>>336
http://i.imgur.com/oD9dIpA.png

a、b、c全部別の意味を表すから、どれが正解かは場合による

10と.some(.some(10))で結果が同じなのは、10と書いてもコンパイラが.some(.some(.some(10)))に自動的にラップしてくれるから
なぜそんなことが許されるかというと、Int???型で「最終的に値が存在する状態」というのは.some(.some(.some(10)))以外にあり得ず、曖昧さが入り込む余地が無いから
だから10、.some(10)、.some(.some(10))、.some(.some(.some(10)))どう書いても全部結果は同じになる
本来なら.some(.some(.some(10)))って書かないといけないわけだけど、それ以外に解釈のしようがないんなら10って書けたほうが楽で便利だよねってこと

一方で、nilには外から何番目ののOptionalでnilなのかによって意味が異なってくるので、勝手にラップされるようなことはない
だからnilなのか.some(nil)なのか.some(.some(nil))なのかを、プログラマの責任できちんと意思表示しないといけない

// Swift 2.x
var a: Int???
a = 1
print(a) // Optional(Optional(Optional(1)))
a = .Some(1)
print(a) // Optional(Optional(Optional(1)))
a = .Some(.Some(1))
print(a) // Optional(Optional(Optional(1)))
a = .Some(.Some(.Some(1)))
print(a) // Optional(Optional(Optional(1)))
a = nil
print(a) // nil
a = .Some(nil)
print(a) // Optional(nil)
a = .Some(.Some(nil))
print(a) // Optional(Optional(nil))
0340デフォルトの名無しさん (ワッチョイ fbe6-jxRo)2016/07/08(金) 13:46:28.78ID:t2q9bwEM0
盛り上がってるところですけど、横から失礼します。

基本的なことを少しだけ。
Optional型はenum定義で、NoneとSome(T)が含まれています。
だから、.Noneと.Some(T)の値を持てます。
実際の値は、.Noneはnil、.Some(T)は指定されたデータ型の値です。

たとえばInt型のOptional(データ型の表記はInt?)だと、
.None // 値はnil
.Some(i) // iはInt型で、値は… -1, 0, 1, 2, …
のどちらかになります。

で、本題だけど、、、、、.Some(nil)って、何でしょうか?
Optional型のenum定義には含まれていません。
コンパイルエラーになるはずです。
0341デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/08(金) 14:07:40.43ID:goWM3aH00
>>333
自動アンラップなんてされないんじゃないかな
危険だし
もしかしたら仕様が定まってない昔のSwiftでは、そういうことしてた時期もあるのかもしれないけど

非Optional同士の比較演算子とは別に、Optional同士の比較演算子が定義されてるっぽい
Int同士の比較なら↓の類が使われて
public func ==(lhs: Int, rhs: Int) -> Bool
Int?同士の比較なら↓の類が使われる
public func ==<T : Equatable>(lhs: T?, rhs: T?) -> Bool

今気づいたけどOptional同士の大小比較では常にnilが小さいことになるのか
var x: Int? = nil
x > 9 // false
x < 9 // true
x < Int.min // true
Int同士の比較では起こりえないInt.min未満って状態が、Int?同士の比較ではありえるんだな

なお、さらっと x < 9 とか書けるのは、>>339の理屈で自動的に.some(9)にラップされてInt?同士の比較として
public func <<T : Comparable>(lhs: T?, rhs: T?) -> Bool
で比較されてるからであって、x が勝手にアンラップされて
public func >(lhs: Int, rhs: Int) -> Bool
で比較されてるわけではない

二重Optional同士の比較ではそもそも演算子が定義されてなくてコンパイルエラーになるな
一重Optional同士なら値<=>値、値<=>nil、nil<=>nilの3パターンを考えれば住むのに対して
二重Optional同士だと値<=>値、値<=>.Some(nil)、値<=>nil、.Some(nil)<=>.Some(nil)、.Some(nil)<=>nil、nil<=>nilの6パターン
三重Optional同士だと10パターンと階乗のオーダーで複雑さが増していくからやってらんないし
true、falseの2値にむりやり帰着してしまうのもどうかってはなしだし
仮に実装したとしても使う側が使いこなせないんだろう
結局ネストしたOptionalを比較したいなら、自力でアンラップしていって、それぞれの場合に対して
自分のやりたいように対応してくださいねっていう当たり前の結論になるんじゃなかろうか
0342デフォルトの名無しさん (アウアウ Saff-7VFp)2016/07/08(金) 14:27:56.31ID:7q2elFN+a
>>339
おぉ分かりやすい Thx!

>>340
Int? 型に対して.Some(nil)の代入はエラーになるけど、
Int?? 型に対してはエラーにならないよ
Int?? だとTがInt?になってnilも受け入れるからじゃね?
0343デフォルトの名無しさん (ワッチョイ c7c9-7VFp)2016/07/08(金) 14:36:01.17ID:goWM3aH00
>>336
>a.last.last.last なんて取り出しかたする時に出てきそうだ

実際それするなら a.last?.last?.last でただの一重Optionalとして扱える
ネストしたOptionalは実際扱いづらいからOptionalチェーンやflatMapがある

var a1: [[Int]] = [[1]] // 外側も内側も値が入ってる
var a2: [[Int]] = [[]] // 外側には値が入ってるけど内側は空
var a3: [[Int]] = [] // 外側がそもそも空

// Optionalチェーンを使った場合
print(a1.last?.last) // Optional(1)
print(a2.last?.last) // nil
print(a3.last?.last) // nil

// mapを使った場合
print(a1.last.map { $0.last }) // Optional(Optional(1))
print(a2.last.map { $0.last }) // Optional(nil)
print(a3.last.map { $0.last }) // nil

// flatMapを使った場合
print(a1.last.flatMap { $0.last }) // Optional(1)
print(a2.last.flatMap { $0.last }) // nil
print(a3.last.flatMap { $0.last }) // nil

結局あるのか無いのかそれだけ教えてよ!ってときにはOptionalチェーンやflatMap使って、ただのOptionalとして取り出せばいいし、
どの段階で無いのかが問題になる場合(上の例ならa2とa3を区別して処理したい場合)はmapやif letのネストで細かく処理すればいい
0344デフォルトの名無しさん (ワッチョイ 5b3c-Sdrj)2016/07/08(金) 20:40:49.64ID:BF5P4QnA0
func a(v:Any){
if let v2:Int?? = v as? Int?? {
print(v2)
}
}
var x: Int?? = Optional(100)
a(x)

aの中から意外と取り出せない100
間者がいれば取れるのだけども
0345デフォルトの名無しさん (アウアウ Saff-7VFp)2016/07/09(土) 00:50:50.23ID:swqkcQV5a
こうじゃダメなん?

func a(v:Any??){
if let v2 = v as? Int? {
if let v3 = v2 {
print(v3)
}
}
}
0346デフォルトの名無しさん (スプー Sdbf-oo3f)2016/07/09(土) 01:01:05.07ID:Jmc9teYmd
定義

と

宣言

の違い、解っているかな?
0347デフォルトの名無しさん (アウアウ Saff-7VFp)2016/07/09(土) 01:08:09.88ID:swqkcQV5a
多分...
端的に言うと、定義は手順や属性の設計、宣言は具現化。。。かな?
0348デフォルトの名無しさん (スプー Sdbf-oo3f)2016/07/09(土) 02:34:28.20ID:Jmc9teYmd
プロトタイプ宣言っていうでしょ?
メモリを確保しないのが宣言。

関数定義っていうでしょ?
メモリを確保するのが定義。

但し、Cの時代の話。
0349デフォルトの名無しさん (アウアウ Saff-7VFp)2016/07/09(土) 03:02:20.33ID:swqkcQV5a
なるほど

でも、プロトコルを定義する(メモリは確保しない)とか、変数を宣言する(メモリを確保する)とかも言わない?
0350デフォルトの名無しさん (スプー Sdbf-oo3f)2016/07/09(土) 07:20:15.38ID:Jmc9teYmd
それは、declareとdefinitionが解ってないからだよ。
0351デフォルトの名無しさん (ワッチョイ dbd4-zDc6)2016/07/09(土) 07:50:17.53ID:ck0r9z2G0
何で定義と宣言の話になってるの?
0352デフォルトの名無しさん (ササクッテロ Sp1f-oo3f)2016/07/09(土) 08:43:26.52ID:qOp1GKBwp
意識高いから
0353デフォルトの名無しさん (ワッチョイ 333c-6uh3)2016/07/09(土) 08:45:04.36ID:naHuvehx0
わかる
0354デフォルトの名無しさん (アウアウ Saff-7VFp)2016/07/09(土) 10:56:55.07ID:YVUnGUhVa
関数定義はメモリを確保するだろうけど、マクロ定義はどうなんだろ?C言語のマクロ定義はメモリを確保しなさそうだけど
マクロ宣言って言うのが正しいのかな...でも、macro definitionって普通に使われてるけどな
スレチだし、どーでもいいか
0355デフォルトの名無しさん (ワッチョイ 333c-7VFp)2016/07/09(土) 14:35:18.36ID:GaYdspvr0
>>344
1行で書くとしたら↓になる?メンドクセーんだけど。
func a(v: Any){
if let v2: Int = Mirror(reflecting: v).descendant("Some") as? Int {
print("v2 = ¥(v2)")
}
}
0356デフォルトの名無しさん (ササクッテロ Sp1f-7VFp)2016/07/09(土) 14:49:08.41ID:yTE6BkItp
おぉ!リフレクション!
なんかすごく便利そうだけど、この関数の有効な利用シーンが思いつかないw
0357名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 5b3c-QOj8)2016/07/10(日) 19:52:51.98ID:by1+C4n70
>>345 >>355
説明不足でごめんね
色んなデータ元や関数経由で雑な感じに渡ってきたAnyから
Optionalをどう剥ぎ取るか、というネタね
SQLバインドやJSON化みたいな感じの

//Optionalが扱えないa
func a(v:Any){
let v2 = v as Any?
switch v2 {
case nil : print("is nil")
case let v2 as Int : print("int : \(v2)")
case let v2 as Double : print("double: \(v2)")
case let v2 as String : print("string: \(v2)")
case let v2 as [Any] : print("array : ["); v2.forEach(a); print("]")
default: print("不明 : \(v2)")
}
}

a("100")
a(200)
a(300.0)
a(Optional(Optional(Optional("400"))))
a(Optional(Optional(Optional(500))))
a(Optional(Optional(Optional(600.0))))
a([700,701,"702"] as [Any]?)
a(800 as Int??)
a(nil as Int??)
0358デフォルトの名無しさん (ワッチョイ 5b3c-QOj8)2016/07/10(日) 20:00:00.24ID:by1+C4n70
なので>>355は正解の一例かな
0359デフォルトの名無しさん (ワッチョイ 5b3c-QOj8)2016/07/10(日) 20:14:42.05ID:by1+C4n70
想定してたのをunwrapAll関数に分離するとこんな感じ
ちなみに間者というのはOptional型に潜り込ませたunwrapのこと

protocol OptionalExt{ func unwrap() -> Any? }
extension Optional : OptionalExt {
func unwrap() -> Any? {
switch self {
case .None: return nil
case .Some(let v): return v
}
}
}

func unwrapAll(v:Any) -> Any? {
if let v = v as? OptionalExt {
let vu = v.unwrap()
return vu == nil ? vu : unwrapAll(vu!)
}
return v
}

func a(v:Any){
let v2 = unwrapAll(v)

以下省略 >>357のswitch以下と同じ
0360デフォルトの名無しさん (ワッチョイ ef93-cFDw)2016/07/13(水) 22:28:12.19ID:KOAv66+w0
サンプルコードのUnicornChatビルドできた方います?
0361デフォルトの名無しさん (ワッチョイ e53c-VzEl)2016/07/15(金) 23:20:09.58ID:AIXYJWQf0
>>360
呪われるぞ
0362デフォルトの名無しさん (ワッチョイ e53c-dnI1)2016/07/16(土) 01:29:59.85ID:a1mINJrC0
struct内は何でmutating func にしないといけないんでしょうか?
mutatingとstaticを同時に使えないのも意味がわかりません。
0363デフォルトの名無しさん (アウアウ Sade-dnI1)2016/07/16(土) 01:45:32.16ID:jcqV7wSPa
ヒント:コピーオンライト
0364デフォルトの名無しさん (ササクッテロ Sp3d-4wno)2016/07/16(土) 12:35:23.80ID:0sBHURfip
>>362
コンパイラがアホでプロパティ可変が判断できてないことによる制約
ワーニング出すくらいには判断出来てるからその内仕変入るんじゃね?
0365デフォルトの名無しさん (アウアウ Sade-dnI1)2016/07/16(土) 12:53:48.80ID:eK9SGdvra
んなことコンパイラにやらせてたらコンパイル時間がさらに遅くなるわ
0366デフォルトの名無しさん (ワッチョイ e53c-8xJT)2016/07/16(土) 14:05:05.89ID:n9fWXu3Q0
structは基本的にプロパティ不変で使うことが前提だからな
値を変えるなら、新しいstructを作り直せって発想
mutatingはその基本ルールを無視してプロパティを変更できる
巨大なメモリサイズを持つstructなら、コピーによるデメリットを回避できる

mutatingはインスタンスに作用するキーワードだから、staticと同時に使う必要がない
0367デフォルトの名無しさん (ササクッテロ Sp3d-4wno)2016/07/16(土) 14:28:57.87ID:zUgSRc7zp
>>366
だったら let, var の宣言の方で調整させろよ、、、と思いますがな
メソッドの修飾に入れるのは別の理由じゃねないかね
まぁアポー様は常に正しいから変わったら変わった時に手のひら返すだけだけど
0368デフォルトの名無しさん (ワッチョイ bb3c-PISr)2016/07/16(土) 15:07:35.51ID:OR/oafOw0
let, var の宣言の方で調整させるためのキーワードだよ
C++でのconstメンバ関数やmutable修飾子と概ね同じ目的
なのでコンパイラでやれたとしても、override同様に表明することに意味がある

property-set(メンバ直含む), subscript-set, mutable関数
この3つはvar変数でしか使えない
前2つはシンタックスから判別出来るけど関数は表明が無いと使う側が判別出来ない
0369デフォルトの名無しさん (ワッチョイ bb3c-PISr)2016/07/16(土) 16:17:47.48ID:OR/oafOw0
ちなみにclassでは必要無い理由はそのままclassとstructの違いに繋がって
letによる不変化がインスタンス領域に適用されないため
区別する状況自体が存在しないから
0370デフォルトの名無しさん (ササクッテロ Sp3d-4wno)2016/07/16(土) 16:28:23.70ID:zUgSRc7zp
>>368
C++やJavaのレガシー言語では納得だけど
Go, Rustのようなモダン言語のモノじゃないなぁ
Swiftはモダン文法が唯一のメリットだから頑張って欲しいネ
0371デフォルトの名無しさん (ワッチョイ bb3c-PISr)2016/07/16(土) 17:00:34.12ID:OR/oafOw0
>>370
Goはそもそもlet相当の不変化修飾が無いそうだよ
Rustはimpl時の&mut修飾がそのままswiftのmutating修飾と同義
0372デフォルトの名無しさん (アウアウ Sade-dnI1)2016/07/16(土) 17:46:14.27ID:WK2UoWkAa
mutatingが無かったら、そのメソッドがプロパティを変更するメソッドかどうかコンパイラが判断できないだろ。判断できなくもないが、ネストしたメソッドをずっと追ってくとコンパイル時間に影響を与える。
0373デフォルトの名無しさん (ワッチョイ bc2b-RgRT)2016/07/16(土) 22:35:56.74ID:2Vgg5+B40
atomicないけど、
プロパティのset/getを排他制御するときはDispatchQueueするしかない?

objc_sync_enter / objc_sync_exit はないと思ってる
0374デフォルトの名無しさん (ワッチョイ bb3c-PISr)2016/07/16(土) 23:22:38.00ID:OR/oafOw0
>>373
objc_sync_enter何で駄目なん?
dispatch_semaphore_waitでも出来るけど上記が駄目なら同様かな

単なるset/getにディスパッチはちょっとアレな気はするけど
GUI絡んだらどうせディスパッチになるし割り切りでも良いと思う
0375デフォルトの名無しさん (ササクッテロ Sp3d-4wno)2016/07/17(日) 07:28:57.69ID:a+huTauMp
>>371
だからメソッドへの修飾は冗長ってことだ
0376デフォルトの名無しさん (ワッチョイ d0c9-dnI1)2016/07/17(日) 13:10:36.99ID:rRft+gba0
mutating修飾ないと使う方も困るやろ
0377デフォルトの名無しさん (ワッチョイ bc2b-RgRT)2016/07/18(月) 09:32:57.19ID:qKKDoyHh0
>>374
何となくobjcって書きたくないのと、処理が遅い
DispatchSemaphore知らなかったから試してみる、サンキュー
0378デフォルトの名無しさん (ワッチョイ 7323-+ugl)2016/07/25(月) 08:52:42.29ID:arfROtSe0
ステマしたいスレがワッチョイ導入対象ってこと?
0379デフォルトの名無しさん (ワッチョイ f77b-9RnF)2016/07/27(水) 00:32:41.22ID:FIXZuIkL0
練習でtableViewに適当なデータを挿入するアプリを作っていたんですが、
データが20個あり、tableViewのnumberOfRowsInSectionの引数を含む関数からはデータの個数「20」が返っているにもかかわらず、
tableViewのcellForRowAtIndexPathの引数を含む関数は16回しか呼ばれずに
データの挿入が16個で、特にエラーなど吐かれずに停止してしまいます。
20個のデータ自体は17個目から壊れているということもなく、エラーも出ないためどう調査したものか行き詰まってしまいました。
これはどういった原因が考えられるでしょうか?
0380デフォルトの名無しさん (アウアウ Saff-+ugl)2016/07/27(水) 01:30:33.19ID:1La/LY56a
cellForRowAtIndexPathは基本的に画面に見えてるセルにしか呼ばれないでしょ
0381デフォルトの名無しさん (スッップ Sd5f-eQ6f)2016/07/27(水) 06:21:13.96ID:7WAEItFRd
>>379
テーブルビューを、スクロールさせてみなよ〜。

>>380
さんの言う通りだから、画面に表示される時に、呼ばれるよ。
0382デフォルトの名無しさん (ササクッテロ Sp8f-LCC3)2016/07/27(水) 13:59:58.21ID:j+ndhMFNp
>>379
それは有名なOSのバグだな
0383デフォルトの名無しさん (ササクッテロ Sp8f-eQ6f)2016/07/27(水) 14:32:42.68ID:F2gJepH5p
無駄なデータ操作しないための適切な仕様だろうに
リストアイテムが1,000とかあっても常に操作されてはたまらんわ
0384デフォルトの名無しさん (ササクッテロ Sp8f-LCC3)2016/07/27(水) 15:19:40.55ID:CvwlEFOqp
そういうことだね。
0385デフォルトの名無しさん (ワッチョイ f77b-wAF5)2016/07/27(水) 19:48:48.98ID:FIXZuIkL0
>>380-382
なるほど!と思いましたが、最下部までスクロールしても特に変化がありませんでした・・・
スクロールで一番下のセル(16個目?)でつっかえた時点で次のセルの読み込みが始まる感じなのでしょうか?

1つ関連して気づいたのは、上からセルを数えてみたところ、どうも視認できるのは14セルしか無いみたいでした。
↑では書いてなかったんですが、テーブルビューの上にUISearchBarを挿入しているので、
その幅のため2セル分スクロール画面外に追いやられている(?)のかもしれません。
それが原因で16セル目が画面に表示されず、17セル目の読み込みが始まらないということですかね?
0386デフォルトの名無しさん (スッップ Sd5f-eQ6f)2016/07/27(水) 21:21:41.62ID:7WAEItFRd
>>385
テーブルビューの高さを短くしてみれば?
0387デフォルトの名無しさん (スッップ Sd5f-tmF6)2016/07/27(水) 21:32:57.75ID:W2cFop4Pd
>>385
数えてないで、セルに番号でも表示させなさい。
0388デフォルトの名無しさん (スッップ Sd5f-eQ6f)2016/07/27(水) 22:31:08.16ID:7WAEItFRd
>>385
あ、スクロールバー、下の方どうなっている?
やっぱり、テーブルビューが長いんじゃないかな。
0389デフォルトの名無しさん (ササクッテロ Sp8f-eQ6f)2016/07/27(水) 22:31:55.81ID:F2gJepH5p
[SDK]iPhoneアプリ開発初心者質問箱46[touch][iPad] [無断転載禁止]©2ch.net
ttp://potato.2ch.net/test/read.cgi/mac/1460975101/

こっち行け
ここより正しく親切に教えてくれる
0390デフォルトの名無しさん (ワッチョイ f77b-wAF5)2016/07/27(水) 22:41:31.58ID:FIXZuIkL0
>>386-388
アドバイスありがとうございました、TableViewの長さをどうこうしてみる方向で試行錯誤してみます
また詰まったら>>389さんのほうで改めて質問したいと思います
スレ違い失礼しました。とても参考になりました!
0391デフォルトの名無しさん (スッップ Sd5f-eQ6f)2016/07/27(水) 22:47:53.58ID:7WAEItFRd
>>390
ok!

頑張ってね!
0392デフォルトの名無しさん (ワッチョイ 813c-oK17)2016/07/30(土) 01:13:26.80ID:Fe0qOD8B0
TableViewはバグが多くて使い物にならないから、
最初にViewを全部作ってScrollViewに並べた方がいいよ
0393デフォルトの名無しさん (アウアウ Sab6-kdTI)2016/07/30(土) 01:14:21.32ID:nNS5LFORa
アホ参上!
0394デフォルトの名無しさん (ワッチョイ 797b-Y0VN)2016/07/30(土) 07:20:09.08ID:ZHtwLoPd0
tableviewにバグなんてあるの?
結構みんな使うし昔からあるし、枯れてる方なんじゃない?
0395デフォルトの名無しさん (ワッチョイ e0c9-kdTI)2016/07/30(土) 08:48:36.07ID:a5YAghH00
それ初心者質問スレにも湧いてた相手しなくていいやつ
0396デフォルトの名無しさん (ワッチョイ b98f-xRNj)2016/07/31(日) 06:28:42.51ID:RXjZtQly0
VideoToolboxってCFオブジェクトベッタリなのか
Swiftから触るのは厳しいかな
0397デフォルトの名無しさん (ササクッテロ Sp69-Y0VN)2016/07/31(日) 06:41:42.56ID:DANK7jnep
CFがあるならまだマシ
本当に辛いのはサードパーティのC++ライブラリを使おうとした時

その苦痛を味わったら意外と大丈夫に思える
クソとクソを比較するようなものだけど
0398デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 13:25:19.04ID:FO6wHhugM
tesuto
0399デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 13:27:42.96ID:FO6wHhugM
BB2Cからなら書き込めるんか携帯縛りかとオモタ
誰かLinux版 Swift書いてるやついない?AnyObjectが使えなくて参ってるんだが
0400デフォルトの名無しさん (ササクッテロ Sp69-IdZB)2016/08/01(月) 14:20:42.38ID:1fEajE9zp
一応使えとるがな
% swift
Welcome to Swift version 3.0 (swift-3.0-PREVIEW-3). Type :help for assistance.
1> class A {}
2> let a: AnyObject = A()

エラーをエスパーするけど、String(非クラス)をAnyObject(任意クラス)にキャストしようとしてるんじゃね?
macOSだと String(非クラス) => NSString(クラス) => AnyObject(任意クラス) でCocoa経由でキャスト出来るけど
Linuxだと String(非クラス) => AnyObject(任意クラス) でキャスト出来ない
0401デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 15:19:31.30ID:GELz0wQeM
すまん、正確には[String:AnyObject]にStringなり突っ込もうとするとAnyObjectじゃないです(怒)ってコンパイラに蹴られる
ちな7/25版
0402デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 15:20:59.17ID:GELz0wQeM
あ、エスパーよく読んでなかった。エスパーの通りだきっと。すまん、ありがとう。ちょっと解決が早くなりそう。
0403デフォルトの名無しさん (ブーイモ MMcd-xRNj)2016/08/01(月) 16:37:42.97ID:GELz0wQeM
ダメか、安易にAnyObject->Anyしても error: contextual type 'Any' cannot be used with dictonary literal が大量に出るだけだった
まあVaporとその依存ライブラリ検索してもAnyObjectもAnyも殆ど出てこないしLinux版は極力こいつらの使用を避けるべきという空気を感じた。
Javaみたいに受け渡す形も全部定義する文化になるのかな・・
error見てるとAPIレベルの統一性もまだ怪しいわ。(Locale(identifier:)何てないっすよ、いやmacの方でそう変えろと怒られたんだけど(怒))
0404デフォルトの名無しさん (ワッチョイ 813c-kdTI)2016/08/01(月) 21:52:26.43ID:FARQwrX60
構造体とクラスが判別つきにくいのはなんとかするべきだわ
クラスにはCプリフィクス、構造体にはSプリフィクスつけるとかさ
0405デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/01(月) 22:42:08.24ID:uVFIKxq/a
ダサっ、..
0406デフォルトの名無しさん (ワッチョイ 76b2-DMQW)2016/08/01(月) 22:47:51.70ID:DY46Or+k0
>>404
今さらシステムハンガリアンを求める意見が出るとは、Swift恐るべき
0407デフォルトの名無しさん (ワッチョイ 813c-oK17)2016/08/02(火) 00:02:44.50ID:3qV5PhW20
NSObjectProtocol

これは美しいよね
NextStepが息づいているオブジェクトの契約―プロトコル―だということが示されている
0408デフォルトの名無しさん (ワッチョイ 7da6-oK17)2016/08/02(火) 00:49:43.41ID:PSACJSZS0
CPUの歓声が聞こえてきそうなセンスだな
0409デフォルトの名無しさん (JP 0Hcd-h2bY)2016/08/02(火) 08:42:29.79ID:1+WRG/xHH
>>404
それはIDEで対処すべき
0410デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/02(火) 09:46:56.26ID:4Am7tDM0a
ラジャー
0411デフォルトの名無しさん (スプッッ Sdc8-1ZjC)2016/08/02(火) 12:09:34.18ID:HzIgtAUzd
>>404
色替えて表示してくれれば良いのにな
0412デフォルトの名無しさん (ササクッテロ Sp69-9rBd)2016/08/02(火) 12:33:40.18ID:SH+voDstp
>>408
Xcode8で NSCompositeSourceOver が NSCompositingOperationSourceOver に変わるくらいだからな
変数名に動詞は美しくない、名詞で統一すべきだ!みたいな思想っぽいがコーディング&ビルド時の歓声がいい感じ
実行時にはどうせ置換されてるからユーザには関係ないし、Appleの思想はふつくしい・・・と美的センスを高めるべし
0413デフォルトの名無しさん (ササクッテロ Sp69-kdTI)2016/08/02(火) 12:56:46.10ID:pW7xUOXSp
ちんこぷるん
0414デフォルトの名無しさん (JP 0Hcd-h2bY)2016/08/02(火) 13:45:18.54ID:1+WRG/xHH
>>411
色割り当ても有限の資源やで
いちいちそんなの割り振ってられるけぇ
0415デフォルトの名無しさん (ササクッテロ Sp69-Y0VN)2016/08/02(火) 14:35:43.17ID:SH+voDstp
IDEでフォローしろと言ったり、色(IDEリソース)は有限と言ったり
今が至上だから変更する必要ないって信者かな
何かで公式対応したらそれを手放しで称賛しそう
0416デフォルトの名無しさん (ワッチョイ 813c-kdTI)2016/08/02(火) 22:07:36.60ID:VvxGwIin0
>>406
業務経験がない大学生や日曜PGには理解できないんだろうけど
業務プログラミングではいまでも普通にハンガリアン現役だよ
pPointerHensuuとかm_memberHensuuとか
INantyaraInterfaceとかdwMillisecondsとか
0417デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/02(火) 22:12:34.94ID:uniFgz6Ja
それマイクロソフト系だけじゃね?
0418デフォルトの名無しさん (ワッチョイ 813c-kdTI)2016/08/02(火) 22:14:36.97ID:VvxGwIin0
>>417
業務プログラミングにMS系もアップル系も関係ないよw
うちはC#だけだけどSwiftでもやることは一緒でしょうに
0419デフォルトの名無しさん (ワッチョイ 88d4-oK17)2016/08/02(火) 22:23:37.28ID:Yi8YUQqw0
仕事でプログラミングなんてしたくない。
よくやれるよな。
趣味でやるから面白いのに。
0420デフォルトの名無しさん (ワッチョイ 9c2b-9rBd)2016/08/02(火) 22:42:41.89ID:o9UsbVn30
Androidは mMember, sStaticMember プレフィクス推奨
Goは Iインターフェースのプレフィクス推奨, 大文字/小文字でpublic/private制御
Swiftはプレフィクスなし推奨(公式ドキュメントにあったはず)
C#は型プレフィクス推奨(だっけかな)
みたいに言語によって違うな

言語文化によってそれぞれ違う、というのが正しい判断
特定言語しか追求してない奴には理解できないんだろうけど
0421デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/02(火) 23:02:23.14ID:uniFgz6Ja
今時ハンガリアン推奨してんのはMS系だけだろ
Obj-CやSwiftでハンガリアン推してるコーディング規約とか見た事ねーわ
Linix界隈でも見た事ねーな
0422デフォルトの名無しさん (ワッチョイ 76b2-DMQW)2016/08/03(水) 00:08:06.09ID:W0lh95XI0
>>416
>業務プログラミングではいまでも普通にハンガリアン現役だよ

それって>>416のいる職場では、Win32 API や VB6 が全盛だった時代の
古き因習を未だに引きずっているっていう話だよ
それが>>416の職場では常識なのかもしれないけど、
今時の世の中の常識とはかけ離れている

それに気付けないとは、気の毒と言う他ないね


>>420
>C#は型プレフィクス推奨(だっけかな)

そのソースはどこよ?
MSの公式文書であるMSDNにはハンガリアンは非推奨と明記されてる訳だが

・一般的な名前付け規則 - .NET Framework の全般リファレンス
 https://msdn.microsoft.com/ja-jp/library/ms229045(v=vs.100).aspx

>特定言語しか追求してない奴には理解できないんだろうけど

いくつかの言語を聞きかじっただけなのに、
すべてを理解してしまったと勘違いする輩が最もやっかいだよ
その本人には自身が無知であるといふ自覚症状が無いんだから
0423デフォルトの名無しさん (ワッチョイ 793c-wtbT)2016/08/03(水) 00:16:43.87ID:Tw+AFkY00
まあまあその辺で
0424デフォルトの名無しさん (ワッチョイ 813c-kdTI)2016/08/03(水) 00:29:48.91ID:coIHhs7S0
>>422
古き良き慣習は時代が変わっても色褪せないものだよ
その証拠にMSも最新の開発言語のC#でインターフェースにIプリフィクスつけてる
プリフィクスが悪しき慣習ならMSが未だに採用していることの説明がつかない
リーダブルコードにもプリフィクスつけることで意味がわかりやすくなるって書いてある
0425デフォルトの名無しさん (ワッチョイ 76b2-DMQW)2016/08/03(水) 00:55:32.60ID:W0lh95XI0
詭弁のガイドライン

例:「犬ははたして哺乳類か」という議論をしている場合
あなたが「犬は哺乳類としての条件を満たしている」と言ったのに対して否定論者が…

1.事実に対して仮定を持ち出す
 「犬は子供を産むが、もし卵を生む犬がいたらどうだろうか?」
2.ごくまれな反例をとりあげる
 「だが、尻尾が2本ある犬が生まれることもある」
3.自分に有利な将来像を予想する
 「何年か後、犬に羽が生えないという保証は誰にもできない」
4.主観で決め付ける
 「犬自身が哺乳類であることを望むわけがない」
5.資料を示さず持論が支持されていると思わせる
 「世界では、犬は哺乳類ではないという見方が一般的だ」
6.一見、関係がありそうで関係のない話を始める
 「ところで、カモノハシは卵を産むのを知っているか?」

以下略
0426デフォルトの名無しさん (ワッチョイ 7c5a-7xJ+)2016/08/03(水) 02:02:05.54ID:X9OiqNW70
詭弁のガイドラインにうちの営業ちひろちゃん(アムウェイ大好き)がハマりすぎてて嫌だ
0427デフォルトの名無しさん (スプッッ Sdc8-Y0VN)2016/08/03(水) 06:40:05.94ID:hZEJfzBOd
>>416
あぁ・・・古き良き時代ってやつかな。
0428デフォルトの名無しさん (ササクッテロ Sp69-Y0VN)2016/08/03(水) 07:44:22.00ID:EUKo0bGfp
>>422
C#だけを取り挙げて、言語毎に違うという論点からズラしてるのは正に詭弁だなw
0429デフォルトの名無しさん (ワッチョイ e0c9-kdTI)2016/08/03(水) 09:35:31.19ID:cin2lfFV0
いち・にぃ・ハンガリアン♪
にぃ・にぃ・ハンガリアン♪
0430デフォルトの名無しさん (ササクッテロ Sp69-kdTI)2016/08/03(水) 10:01:36.34ID:qoaK0iCLp
ハンガリアンつうか型プレフイックスはさすがに古いかなと思う
たいして役に立たんし、ただでさえ長くなりがちな変数名を余計に長くするだけだ
型変換とかでまずいとこは今はIDEが警告くれるし
メンバ変数のm_も、見るとあぁこいつMS系言語出身だなとすぐわかるなw
self.m_strName = "ピカチュウ"
とかダサすぎw selfついてるからメンバ変数って一目瞭然だし、この場合文字型なのも一目瞭然
iCounterとか、bFlagとか、fnMyCallbackとか、いちいちプレフィックスつける必要なくね?
Appleも自明な変数名つけることを推奨してるしな。英語力とセンスが問われるけど
0431デフォルトの名無しさん (JP 0Hc8-oK17)2016/08/03(水) 10:07:41.60ID:un+mgcUtH
Obj-Cって、簡単に言うと C言語+クラス+機能だろ?
Swiftは何?
0432デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/03(水) 10:29:12.84ID:i6V8lLeHa
何言ってんのお前?
0433デフォルトの名無しさん (JP 0Hc8-oK17)2016/08/03(水) 10:59:34.90ID:un+mgcUtH
>>429
お前頭がオカシイって言ってるぞ
0434デフォルトの名無しさん (アウアウ Sa4a-kdTI)2016/08/03(水) 11:10:27.13ID:i6V8lLeHa
いやお前だよ
0435デフォルトの名無しさん (ササクッテロ Sp69-9rBd)2016/08/03(水) 11:42:26.83ID:EUKo0bGfp
>>431
Appleは Objective-C without C って言ってる
0436デフォルトの名無しさん (ワッチョイ a353-xRNj)2016/08/03(水) 12:02:01.38ID:gtoXy1DE0
経験上ハンガリアンのなにがダメかっていうとその変数の属性を人間が管理することになるから。
開発途中だと変数の属性なんて頻繁に変わるからな
型からスコープから。ものぐさはハンガリアンしてるくせにそれらが変わってもいちいち変数名を修正しないので混乱を招く。いちいち修正をする奴もそれで無駄に意識を疲労してる事に気付いていない。
Swiftでも一部ライブラリにextensionにprefixを付ける悪習が広まってるが、あれが他者と被ったり作者が気分的に変えたくなったりしたら面倒くせえなと思って敬遠してる
0437デフォルトの名無しさん (アウウィフ FF45-F8IK)2016/08/03(水) 12:09:49.63ID:mbys/AN5F
>>419
もしかして公務員?
0438デフォルトの名無しさん (ワッチョイ a353-xRNj)2016/08/03(水) 12:12:40.05ID:gtoXy1DE0
そもそもSwiftは.hと.mが一体になったおかげで
storedかlocalかなんて即判別できるんだよな
Cの時はいちいち.h開くのが地味に面倒だった
ハンガリアンが必要と感じるのも不要と感じるのも、その人の開発環境をよく知らないと簡単に口だしはできないな
0439デフォルトの名無しさん (スプッッ Sdc8-Y0VN)2016/08/03(水) 12:29:12.89ID:hZEJfzBOd
>>435
C+SmalkTalk=ObjectiveC

ObjectiveC-C=SmallTalk

そうかSwiftってSmallTalkだったんだぁ。
0440デフォルトの名無しさん (ササクッテロ Sp69-kdTI)2016/08/03(水) 12:49:28.49ID:qoaK0iCLp
短絡的すぎw
0441デフォルトの名無しさん (ワッチョイ a353-xRNj)2016/08/03(水) 12:49:39.05ID:gtoXy1DE0
Prefixに込める意味が各人で異なるってのも問題だったな
mをメンバ変数の意味で使う人もいれば、Mutableの意味で使う人もいたり
k をconstの意味で使う人もいれば、dictonaryのkey要素として使うという意味だったり(似て非なるのが気持ち悪い)
オプソでもやっぱりパッと見でハンガリアン使ってない方がスマートに感じる
ローカルルール感がなくて洗練されている印象がある
まずローカルルールを理解しろってコードは田舎臭い印象を持たれるわ
0442デフォルトの名無しさん (ワッチョイ 3f3c-PVGc)2016/08/03(水) 18:23:52.38ID:dW70LiFf0
こんな話がある
http://local.joelonsoftware.com/mediawiki/index.php/間違ったコードは間違って見えるようにする

本来の「種類(Y軸など)を付加するハンガリアン」と
誤解から生まれた「型(Intなど)を付加するハンガリアン」

>これはシモニイの意図していたことではない。
>シモニイは「タイプ」が正確に何を意味するのか注意深く説明しているが、
>それも救いにはならなかった。ダメージは為されてしまった。
0443デフォルトの名無しさん (ワッチョイ 813c-oK17)2016/08/03(水) 23:53:59.30ID:7qxgC/FR0
プレフィクスをつけると、それだけ手間をこめて作られている変数なんだなって思う
なんでもletで不変にして使い捨てるという発想は現在のコンビニ社会の病理に繋がっている
0444デフォルトの名無しさん (ワッチョイ e75a-PuCP)2016/08/04(木) 01:15:34.19ID:chLb4pJN0
せやな
0445デフォルトの名無しさん (ワッチョイ f30c-tjuG)2016/08/04(木) 02:18:17.05ID:r0NDF1ZQ0
システムハンガリアンは禁止

メソッドの最後のパラムのクロージャーのシンタックスシュガー的書き方がちょっとキモい時がある。てかクロージャーのシンタックスシュガーもキモい

こういうの書けるのかな
func { func2 { $0 } + $0 }
0446デフォルトの名無しさん (ワッチョイ fb3c-4iqd)2016/08/04(木) 03:00:38.03ID:EBp/tV2L0
🍎0のような絵文字を採用するべきだっただろうな
Swift4ではそうなっているかもしれん
0447デフォルトの名無しさん (アウアウ Saa7-TDLi)2016/08/04(木) 07:04:30.86ID:SVFS7JiRa
入力に手間がかかるから却下
0448デフォルトの名無しさん (ワッチョイ fb3c-4iqd)2016/08/04(木) 07:38:40.28ID:EBp/tV2L0
次のmacには🍎ボタンがつくでしょ
0449デフォルトの名無しさん (ブーイモ MM6f-d+5h)2016/08/04(木) 08:33:51.54ID:2z+OF9yeM
2chが絵文字対応なことに驚いた❗
0450デフォルトの名無しさん (ワッチョイ 6b23-d+5h)2016/08/04(木) 08:35:24.96ID:qYTPS07g0
むしろこれまでutf8ひたいおうだったことに👀‼
0451デフォルトの名無しさん (オッペケ Sr07-xKE3)2016/08/04(木) 09:38:46.85ID:o2lvd40xr
システムハンガリアンとアプリケーションハンガリアンがごっちゃになってるな。
アプリケーションハンガリアンや言語仕様でのプリフィクスは誰も反対してないと思う。
0452デフォルトの名無しさん (ブーイモ MMa7-4iqd)2016/08/05(金) 10:56:37.09ID:RHt058cjM
言語仕様にプレフィックスが含まれてる奴なんてないだろ
言語仕様がいけてないせいで付与せざるをえなかった便宜的なプレフィックスならあるが
0453デフォルトの名無しさん (ワッチョイ eba6-+Lqe)2016/08/05(金) 11:01:53.25ID:B5PVXDo30
rubyのことかー!
0454デフォルトの名無しさん (ブーイモ MM67-d+5h)2016/08/05(金) 11:10:11.02ID:u8ZJbz8AM
BASIC?サフィックスだけど。
0455デフォルトの名無しさん (ワッチョイ df20-dkFz)2016/08/05(金) 11:26:50.83ID:+UUjYcrK0
>>453
perlのことだろ
オンメモリ上に型情報を置かなくて済むから(当時)低スペックでもOK
IDEなんて(当時)ないので変数名だけで人が型推論できる
みたいなメリットしかない言語仕様プレフィクスだった

新興言語はそういう制約がほぼないからデメリットと見なされて無くなってはいるな
ゆえにSwiftも無駄なプレフィクスは非推奨してんだろ
ObjC(Foundation, Cocoa)とのI/F互換性のために引き続き使ってるのは許容されてる
0456デフォルトの名無しさん (ワッチョイ df20-dkFz)2016/08/05(金) 11:28:18.50ID:+UUjYcrK0
メリットしかない => メリットが目立つ
こう書かないと発狂する奴が出るので訂正するよ
0457デフォルトの名無しさん (ワッチョイ ebc9-la3/)2016/08/05(金) 13:50:53.42ID:LJe/qM3f0
rubyはperlが嫌い(Matz hates it!)と言いながら
perlのひどいところをわざわざ真似したよね
なぜ?
0458デフォルトの名無しさん (オイコラミネオ MM0f-4iqd)2016/08/05(金) 14:25:23.95ID:4DdhRhc0M
SFSpeechRecognizerとかのSFって何の略?
0459デフォルトの名無しさん (ワッチョイ f33c-gwaK)2016/08/05(金) 14:28:30.48ID:S2JwEYZ00
Speech Framework
0460デフォルトの名無しさん (ワッチョイ 77c9-TDLi)2016/08/05(金) 14:30:07.48ID:3AyP/o4E0
Speech Framework
0461デフォルトの名無しさん (ワッチョイ fb3c-IAeB)2016/08/05(金) 14:31:25.25ID:loWV5KfL0
Speech Framework
0462デフォルトの名無しさん (オイコラミネオ MM0f-4iqd)2016/08/05(金) 14:32:40.11ID:4DdhRhc0M
そのまんまじゃん!
どうして気づかなかったのか(^^;
ありがとう
0463デフォルトの名無しさん (ササクッテロ Sp07-dkFz)2016/08/05(金) 17:03:38.38ID:EtUFIOCRp
Sukoshi Fushigi

こういうプレフィクスはどうするんだろうね
Swift3に合わせてObjCの言語仕様も調整するかと思ったら見送られてるようだし
Swift Package Managerが安定する来年,再来年に調整かね(Swift3のpackage managerはクズだった
0464デフォルトの名無しさん (ササクッテロ Sp07-4iqd)2016/08/05(金) 22:54:07.73ID:Kkm3WZRop
CocoaPods買収されとけばよかったのに
よほど吹っかけたんだろうか
0465デフォルトの名無しさん (ワッチョイ 8353-4iqd)2016/08/06(土) 08:27:17.21ID:EFYxTwiP0
CocoaPadは遅いしよくトラブるから勘弁
CarthageのXcodeに手動で設定加えないといけないバグは治ったらCarthageがいい
将来が期待できるのはやっぱSPMだなあ。今はクソだけど
0466デフォルトの名無しさん (ワッチョイ d317-4iqd)2016/08/06(土) 08:51:39.68ID:W7Ms+Ki90
CocoaPodsってただのRubyスクリプトだろ
Appleがライブラリ管理に採用するわけないじゃん
0467デフォルトの名無しさん (アウアウ Saa7-TDLi)2016/08/06(土) 09:11:26.26ID:MQiRzj93a
いやサーバーサイドもあるだろ
0468デフォルトの名無しさん (ササクッテロ Sp07-dkFz)2016/08/06(土) 10:54:38.66ID:kt6iCBZLp
>>465
どの操作のこと言ってるか分からんが、それ正規仕様って言ってるやつじゃねーの?
メリット少ないし、対応しない方がメリット大きいと考えるから手作業での追加を仕様するって言ってたと思うが

Carthageが出来たんだから自分(Apple内)でも作れる、と思っちゃったのが失敗だな
npmやgo, cargoはそこそこ枯れるくらいに時間かけてるのに、SPMが一年やそこらの開発期間で安定するワケなかった
AppleがIBMにCocoaPodsを買収させて、IBM管理下でCocoaPodsが運用されるのが理想だったかな(政治的にありえん
0469デフォルトの名無しさん (ブーイモ MM67-4iqd)2016/08/06(土) 13:56:58.06ID:U84KjgALM
いや別に安定性は文句ない
基準のわかりにくいLayoutErrorとinitがやっつけ感
満載なのとgenerate-xcodeprojで吐かれるのがごちゃごちゃしすぎなのとSampleCodeも巻き込んで取り込もうとする(ライブラリ制作者側にいい回避方法が提示されてないからこうなってるんだろう)のをどうにかしてくれれば当面文句はない
安定したSPMライフを過ごしたいなら今ライブラリの依存バージョンがカオスなのでまずswiftenvを使いこなす必要がある
0470デフォルトの名無しさん (ワッチョイ f30c-orr6)2016/08/06(土) 16:49:26.13ID:BjaX+hYV0
ビルド済みのframeworkだけでいいんだけどな
iOS, macOS, シミュレータでframeworkを綺麗に統合するのができなさそうだけど。
0471デフォルトの名無しさん (ササクッテロ Sp07-4iqd)2016/08/06(土) 17:52:54.64ID:ICY0gKIkp
iOSとiOS Simulatorはlipoで結合すれば1バイナリでいける
macOSとwatchOS用のframeworkを1バイナリにまとめるのは無理そうだった
その辺含め純正パッケージマネージャーに期待してる

つうかAppleはOS作るレベルなんだし社内では枯れたライブラリ管理システム持ってるよな?
0472デフォルトの名無しさん (ササクッテロ Sp07-d+5h)2016/08/06(土) 18:07:38.73ID:2Lfq8V1ep
つXcode
0473デフォルトの名無しさん (ワッチョイ f30c-orr6)2016/08/07(日) 01:22:13.53ID:146tuEyE0
>>471
iOSとiOS Simをまとめたとき、info.plistだったかながしっくりこない
0474デフォルトの名無しさん (ササクッテロ Sp07-d+5h)2016/08/07(日) 11:07:20.55ID:E22yet70p
>>469
SPMはライブラリバージョンは解決してるし、それとswiftenv関係なくね
xcode-selectの切り替えあればswiftenvも使う機会ないがなぁ
0475デフォルトの名無しさん (JP 0Hef-+Lqe)2016/08/08(月) 11:07:16.70ID:IdmAvyk/H
Swiftの本なに買ってる?
0476デフォルトの名無しさん (アウアウ Sa1f-TDLi)2016/08/08(月) 11:30:40.09ID:l9Qu+8oAa
Swift3.0の本はまだ出てねーだろ
0477デフォルトの名無しさん (スプッッ Sdef-tuv5)2016/08/08(月) 12:44:26.98ID:3sXZ9+0Dd
swift3.0は出たの?
0478デフォルトの名無しさん (オイコラミネオ MM0f-4iqd)2016/08/08(月) 14:35:50.94ID:Redr8iZHM
詳解Swift 3待ち
0479デフォルトの名無しさん (ワッチョイ cb0c-tjuG)2016/08/09(火) 01:50:23.10ID:lMOV9twn0
githubのswift-evolution
0480デフォルトの名無しさん (ワッチョイ e742-d+5h)2016/08/09(火) 03:12:50.77ID:ElWNHZru0
週刊swift(創刊号は390円)待ち
0481デフォルトの名無しさん (ブーイモ MM67-4iqd)2016/08/09(火) 12:52:43.71ID:clF6+sXCM
>>474
サーバーサイドで使ってないだろ?
xcode-selectなんてクソの役にももたたん
.swift-versionだけが頼り
0482デフォルトの名無しさん (ブーイモ MM67-4iqd)2016/08/09(火) 12:56:44.80ID:clF6+sXCM
Swift2->3はObjCのmodarn objc化の時とは比較にならん程思いっきり変わるな
バカッターが阿鼻叫喚で埋まる日が楽しみだ
structがScalaのcase class化してるぞ
0483デフォルトの名無しさん (ササクッテロ Sp07-d+5h)2016/08/09(火) 14:00:48.47ID:9AWMzQqQp
swift betaの頃から使ってないだろ?
1.xの更新は毎回こんな感じだったぞ
Linuxサーバで使うなら環境変数切り替えでいいや
その切り替えコマンドのラッパーが欲しいならまぁ便利か
0484デフォルトの名無しさん (ワッチョイ 4b87-+Lqe)2016/08/10(水) 00:02:35.92ID:iA5LWa2Z0
これでゲーム作れるの?
0485デフォルトの名無しさん (アウアウ Saa7-TDLi)2016/08/10(水) 07:52:51.99ID:krmuthuGa
もちのろんよ
0486デフォルトの名無しさん (ワッチョイ 4123-lbRm)2016/08/12(金) 12:01:57.76ID:InPVQ0+50
Swiftに変えなければならない切迫した技術的かつ合理的な理由はないが、
Apple利己的かつ政治的な理由により我々は早急にSwiftへの移行を考えるべきである
以上
0487デフォルトの名無しさん (ワッチョイ 4693-xYo4)2016/08/12(金) 12:23:30.36ID:WntVIcRT0
でもSwift美しいし、書いてて楽しいよ
0488デフォルトの名無しさん (アウアウ Sa19-3Vwo)2016/08/12(金) 12:49:49.20ID:mm4X6Gd9a
F#「ダッセ」
0489デフォルトの名無しさん (ブーイモ MMa8-xYo4)2016/08/12(金) 14:14:08.21ID:dBixsx1QM
低レベルAPIの定数定義使いたい時にcのヘッダだけ見つかって、そのSwiftインターフェースが検索で出てこないときあるよね。

Documentが未定義でヘッダだけのケース、みんなどうやって探しているの?

cの場合はターミナルでgrep -Rで探せば見つかったけど、Swiftインターフェースは出てこない。
0490デフォルトの名無しさん (ササクッテロ Sp8d-3Vwo)2016/08/12(金) 16:12:55.03ID:FPTQHjIzp
grep -Rで.h検索して、Swift IFに読み替え
Xcodeで出たり出なかったりするのは、もう期待してない
0491デフォルトの名無しさん (アウアウ Sa19-3Vwo)2016/08/12(金) 19:20:55.45ID:IYlYCot4a
Swift F#で検索するとテーラースウィフトが出てくる
0492デフォルトの名無しさん (ワッチョイ 1987-MTuc)2016/08/13(土) 05:43:50.35ID:yUVj9/gQ0
>>485
DirectXみたいなもん使うの?
0493デフォルトの名無しさん (ワッチョイ 2166-xYo4)2016/08/13(土) 07:56:11.91ID:3EXvgLlz0
スプライトキットでええんでないの
0494デフォルトの名無しさん (ワッチョイ 50c9-lbRm)2016/08/13(土) 08:30:50.87ID:YDpayzOT0
もろのちんよ
0495デフォルトの名無しさん (ブーイモ MMa8-xYo4)2016/08/15(月) 12:29:39.91ID:yDMCtoLlM
SwiftでScritable Application作ろうと頑張ってるが、想像以上にまともな情報少ないな。

本家のドキュメントに10.5以降とか書いてあって萎えた。何年前のネタやら。
0496デフォルトの名無しさん (ワッチョイ 773c-wLiW)2016/08/20(土) 18:51:29.42ID:/9cA7dTP0
pcデポでipad購入したらログが取られていると書いてあったがどうゆう仕組みなのでしょうか?
アプリ単体では、サーバーと連携すればログを取れると思うのですが、プロファイルでipadの起動状況がわかるとか書いてあったのですが、どうゆう仕組みなのでしょうか?
0497デフォルトの名無しさん (アウウィフ FFa7-61cg)2016/08/20(土) 19:21:04.72ID:OZEoChm6F
PCデポの話はこちらで
http://da ily.2ch.net/test/read.cgi/newsplus/1471442254/
0498デフォルトの名無しさん (JP 0Hef-D2ET)2016/08/21(日) 15:06:23.25ID:FLlAHrBWH
勝手に設定される
初期化すれば問題ない
0499デフォルトの名無しさん (アウアウ Saa7-HNW7)2016/08/22(月) 01:24:16.78ID:+JfquTF3a
>>494
逮捕しますw
0500デフォルトの名無しさん (ワッチョイ db7b-DJkl)2016/08/22(月) 16:28:42.85ID:d5DQ07MM0
rxSwiftしばらく触っておもったんだけど。
概念はまぁ分かるんだけど実装時の学習コストが半端ない。
正直複雑すぎないか?もっと単純にパイプ繋いだら動くって理解だけで済むように
して欲しい。
0501デフォルトの名無しさん (ササクッテロ Sp07-HNW7)2016/08/22(月) 17:28:35.78ID:w5OZ4Actp
rxSwiftの流行りはもう終わったろ、、、
素直にOOPか、ギリギリ関数ブロック多用くらいにしときたい
0502デフォルトの名無しさん (アウアウ Saa7-QXB1)2016/08/22(月) 20:38:13.92ID:1c5DUbhwa
Swift 3のふりかえりとSwift 4に向けて
https://www.infoq.com/jp/news/2016/08/ahead-to-swift-4
0503デフォルトの名無しさん (ワッチョイ db7b-HNW7)2016/08/22(月) 21:39:10.13ID:d5DQ07MM0
>>502
なんというか盛り沢山すぎる。
async awaitは、丁度jsで触っていたから良い気がするけど、rustのメモリモデルを、取り入れるとかrustを殺しに来ているのか。
足し算よりも引き算を、考えてほしい
0504デフォルトの名無しさん (ワッチョイ db7b-HNW7)2016/08/22(月) 21:42:51.97ID:d5DQ07MM0
>>501
流行りというか、全然現役だと思うんだけどきれいに作るにはさらなる推古が必要というか。結局rxだけでは解決しない。
0505デフォルトの名無しさん (ワッチョイ 77c9-DJkl)2016/08/23(火) 00:33:49.88ID:ZjGKyhsb0
どうでもいいけどSwift EvolutionはメーリスじゃなくてC#みたいにGitHubのIssuesで議論してくれたらいいのに
0506デフォルトの名無しさん (ササクッテロ Sp07-HNW7)2016/08/23(火) 02:51:11.51ID:Kz+VoKQ8p
どうでもいいな
0507デフォルトの名無しさん (ワッチョイ 6bb8-DJkl)2016/08/23(火) 08:42:57.29ID:cpTR082L0
>>502
いつまでダラダラやってんだよ
とっとと言語仕様FIXしやがれ
0508デフォルトの名無しさん (ササクッテロ Sp07-wLiW)2016/08/23(火) 08:46:24.85ID:K9ISf6WBp
結局Swift2までの言語仕様はクソだったんだよね
あれを褒めてた人たちってセンスないの?
0509デフォルトの名無しさん (スッップ Sd6f-HNW7)2016/08/23(火) 09:10:01.33ID:i+Fi0g/3d
モダン()な雰囲気に酔いしれてただけだよ
進化の方向性としてObjective-C 3.0でよかった人がほとんど
0510デフォルトの名無しさん (ササクッテロ Sp07-HNW7)2016/08/23(火) 10:14:04.34ID:c6Vi+yfIp
みんなswift 3も引き続きダメだと分かってて使ってるだろ
objcアーキテクチャに縛られるからファーストクラス非同期はむづい
0511デフォルトの名無しさん (ワッチョイ db7b-DJkl)2016/08/23(火) 21:34:48.67ID:KXKGltNd0
>>510
ファーストクラス非同期って具体的にどういうコードのことです?
0512デフォルトの名無しさん (ワッチョイ db8c-HNW7)2016/08/24(水) 00:03:37.07ID:+4HQlbXd0
C#のasync/awaitとかGoのgo

gcd, NSOperationをキーワード化しようにも下のC++XX(ObjC)がやってないから出来ない
素直に採用するならC++XXの仕様待ちかねぇ
0513495 (ブーイモ MMb8-qQHP)2016/08/29(月) 14:10:28.69ID:uH2VtApGM
4バイトコード(いわゆるFourCharCode)が、ライブラリによってうUInt32だったりInt32だったりするんだが、
('1394'とか'avc1'とかそういう定数)
Swiftでcのポインタキャストみたいな方法どう実装すればいいのか教えて欲しい。

Swift1.xにはasUnsigned()とかで強制変更できたみたいなのだが、Swift2ではどう書くのかよくわからない。
0514デフォルトの名無しさん (ササクッテロ Sp69-t1qj)2016/08/29(月) 15:11:12.57ID:OQGg7t2op
Swift 3で変わってるけどUnsafePointer, unsafeBitcast周りを使う
一応公式ドキュメントでも使い方説明されてるから読め
0515デフォルトの名無しさん (ササクッテロ Sp69-t1qj)2016/08/29(月) 15:17:03.79ID:OQGg7t2op
あぁ、それらはCからCにSwiftを経由して渡す時のものだから
ただただSwift変数に格納するなら構造体コンストラクタ呼べ
確か、asも最近は使えないように機能削減してるだろ
0516デフォルトの名無しさん (ワッチョイ 813c-gQqU)2016/08/30(火) 00:31:27.04ID:cNs0f/wG0
Int82とInt74の違いを教えてください
0517デフォルトの名無しさん (アウアウ Sacf-S/wM)2016/09/03(土) 18:38:29.33ID:n1t+on2ba
Swiftは変数名に使える文字をもっと制限すべき

https://swiftlang.ng.bluemix.net/#/repl/57c9007cc4656ed91352709b
0518デフォルトの名無しさん (ササクッテロ Sp8f-RETc)2016/09/03(土) 18:58:40.80ID:bXWISI5Hp
取捨選択面倒そう
0519デフォルトの名無しさん (ワッチョイ e33c-hNlF)2016/09/06(火) 01:09:34.14ID:69qu5Xdx0
A-Za-z0-9でおk
0520デフォルトの名無しさん (ワッチョイ e33c-hNlF)2016/09/06(火) 09:53:10.97ID:BlGzzwl/0
>>519
絵文字使えたほうが、一時的に仕込むデバックログを発見しやすいんですよねぇ
0521デフォルトの名無しさん (ワッチョイ e33c-hNlF)2016/09/06(火) 09:54:52.66ID:BlGzzwl/0
>>520だけど、変数名なら英数と一部の記号だけでよかったわ
何勘違いしているんだろ

そして、519とワッチョイかぶって自演みたいじゃねーか
0522デフォルトの名無しさん (ササクッテロ Sp8f-RETc)2016/09/06(火) 19:49:29.55ID:r6Q3w9Jpp
rustだかgoだかで英数字記号だけにしてたら文句出て
じゃあ本当に英数字以外使ってんのかよってアンケート取ったら使ってるって結果出て渋々対応した

他言語仕様をパクるswiftがそれに追従したのは当然の結果である
対応しなくても困らないとは思うけどねー
0523デフォルトの名無しさん (ワッチョイ 67c9-hNlF)2016/09/07(水) 11:24:27.15ID:0eqIq2jN0
基本なんでも使えるようにして、制限したい奴はLint的なツール使えばいいだろ
0524デフォルトの名無しさん (JP 0Hcf-RETc)2016/09/07(水) 12:41:08.63ID:pes+4CK/H
いやいやlintで構文規約絞るよりは
言語仕様として規約作ってほしい。
golangとか見習えって感じ。
俺自身は規約に対してどうこう言うつもりはないけど、誰かの気まぐれでコロコロ規約が変わるのは我慢ならない。
新しい言語ならそういうのを考慮したほうが将来的にいいだろうと思うが。
0525デフォルトの名無しさん (ワッチョイ 0b17-10NS)2016/09/07(水) 13:28:41.38ID:aCkr7naK0
Swiftのmapとfilterの記述省略で書き方が割れるのは良くないと思う
俺もある程度書き方には制限を設けて、面倒な記述はIDEの機能で補完できるようにすればいいと思ってる
0526デフォルトの名無しさん (ササクッテロ Sp8f-RETc)2016/09/07(水) 14:19:10.78ID:JMX0NqCpp
>>524
あれもナイわw
Googleのいつもの、ぼくがかんがえたさいきょうの...のな命名規則に笑った
お前にとって最強でも他者が全員そうだと思うなよと
0527デフォルトの名無しさん (ワッチョイ f3c9-zTVk)2016/09/07(水) 15:13:51.90ID:YSZpbVen0
Googleは詰めが甘い
MSよりマシなだけ
0528デフォルトの名無しさん (ワッチョイ b3e3-RETc)2016/09/07(水) 19:13:28.74ID:WA0UQMWy0
androidのsdkって結構エンジニアに叩かれてるイメージあるけど
appleのはどうなの?nextstep由来は最高な感じ?
0529デフォルトの名無しさん (ワッチョイ e33c-hNlF)2016/09/07(水) 22:41:56.76ID:EkCs6kan0
むしろiOS SDKが叩かれて
Android ADKがサイコーって言われているイメージだな
スタックレイアウトとか便利って聞くし
0530デフォルトの名無しさん (ササクッテロ Sp8f-RETc)2016/09/07(水) 23:26:33.01ID:GA4Onz9Gp
SDKスレかIDEスレに行け
0531デフォルトの名無しさん (ワッチョイ 3d7b-j70e)2016/09/08(木) 01:34:51.79ID:VrDV8UFP0
>>529
スタックレイアウトならiosもあるだろ。
autolayoutに似たようなのもadkに実装されつつあるしお互いに補完しあってコモディティ化してる感じかな
0532デフォルトの名無しさん (JP 0H78-tq+X)2016/09/08(木) 14:26:07.38ID:bBLHyk+nH
JAVA裁判中
Androidに、Swift採用される可能性あり
0533デフォルトの名無しさん (ワッチョイ f18f-fZg2)2016/09/08(木) 20:55:31.69ID:DdU7GvYq0
>>532
そうなったらいいけど既存のライブラリを全部捨てるのはまずいでしょ
すなおにkotlinでいいのでは
0534デフォルトの名無しさん (ササクッテロ Sp3d-j70e)2016/09/08(木) 22:05:21.29ID:tEIKARpbp
結局JavaVMおよびJava既存ライブラリ使うし、過去に使ってた事実は変わらないし、何が解決するというのかw
文法だけモダンになったObjCとSwiftは、JavaとKotlinの関係にクリソツ
聖遺物を犯すなという信者がいない分、Java, Kotlinの方が平和だけど

Xcode GM seedのリリースノート読み直したら
ObjCにSwiftの一部機能/文法バックポートしたけどバグがあるから気を付けろとか言っててワロタ
GMでも直らなそうだから困るネ
0535デフォルトの名無しさん (アウアウ Sa09-j70e)2016/09/09(金) 21:17:25.19ID:oMlYA35za
>>532
OCamlが良いな
0536デフォルトの名無しさん (ワッチョイ e53c-fZg2)2016/09/10(土) 12:32:42.21ID:hj884G230
guardでenumが特定の値じゃないことを保証するにはどうしたらええんや?

enum Hoge { case Huga, Hige, Fiz, Buz }

  // 1個だけだったらなんとかなる
  guard let .Huga = hoge else {
   // Huga 以外だったら何もしない!
   return
  }

  // こうは書けない
  guard hoge == .Huga || hoge == .Hige else {
   // Huga, Hige 以外だったら何もしない!
   return
  }

  // 2個以上はswitchを使うしかない?
  switch hoge {
  case .Huga, .Hige:
    break
  default:
    // Huga, Hige 以外だったら何もしない!
    return
  }
0537デフォルトの名無しさん (ササクッテロ Sp3d-j70e)2016/09/10(土) 12:38:48.81ID:OC0tYFoVp
ifでいいんじゃねーの
意識高くguard使いたいのは分かるが考えるの無駄
0538デフォルトの名無しさん (ササクッテロ Sp3d-Te6E)2016/09/10(土) 14:09:02.47ID:J2gqY0Ejp
Associated Valueのあるenumだとswitchするしかないしな
どうしてもguardで書きたいならその条件判定するextension書けば?
0539デフォルトの名無しさん (ササクッテロ Sp3d-Te6E)2016/09/10(土) 17:07:16.99ID:L2RqT83up
Extensionまみれのクソ言語
0540デフォルトの名無しさん (ワッチョイ d0c9-fZg2)2016/09/10(土) 20:02:21.34ID:Rsq09IoI0
>>536
>  // こうは書けない
>  guard hoge == .Huga || hoge == .Hige else {
>   // Huga, Hige 以外だったら何もしない!
>   return
>  }


これ書けるでしょ?
0541デフォルトの名無しさん (ワッチョイ e53c-fZg2)2016/09/10(土) 22:12:18.49ID:hj884G230
>>540
すまん、ここで例に上げるために簡略化したから訳わからんことになってるが
Associated Valueなしならguardでいけたわ
enumにAssociated Valueがひとつでもあるとダメっぽ
つまり
enum Hoge { case Huga, Hige, Fiz, Buz(Int) }
こうなるとダメ
0542デフォルトの名無しさん (ワッチョイ e53c-tq+X)2016/09/11(日) 00:54:51.41ID:6pgOB2Es0
>>541
Associated Valueがある場合はBuz(1)とBuz(2)が等価かどうか分からんから
Equatableプロトコル未実装扱いになる
準拠させて、==演算子を定義しろ
0543デフォルトの名無しさん (ワッチョイ e53c-fZg2)2016/09/11(日) 03:00:30.45ID:SyHQJkim0
>>542
なるほど、そういうカラクリか!
ifやguardで==チェックするにはEquatableに準拠が必要で、
Associated Valueが無ければ暗黙的にEquatable準拠になるのね
0544デフォルトの名無しさん (ブーイモ MMb1-Te6E)2016/09/11(日) 03:35:19.47ID:ycWMiz3TM
オプショナルバインディングとセットで使うから綺麗なんであって
guardで比較演算とか愚の骨頂だろ
0545デフォルトの名無しさん (ワッチョイ d0c9-fZg2)2016/09/11(日) 12:19:46.72ID:U39ML2e20
それはおまいの思い込みだ
0546デフォルトの名無しさん (ササクッテロ Sp3d-j70e)2016/09/11(日) 12:38:39.71ID:acFljjgkp
ifはC言語仕様でダサイ
新しいguardの方がクールだから常に使うべき

と昔のアポー信者なら言ってると思う
今の信者はジョブズ派とアポー派に別れてよくわからん
0547デフォルトの名無しさん (ワッチョイ e53c-tq+X)2016/09/11(日) 13:00:05.27ID:f+Lj2GcN0
guardは内部でreturn、throwをしていないとコンパイルエラーになるから便利というだけだぞ
それ以上の意味はない
0548デフォルトの名無しさん (ササクッテロ Sp3d-j70e)2016/09/11(日) 13:21:47.51ID:irbs7pjZp
ObjCはC++11よりオブジェクト思考で便利というだけ
SwiftはObjCよりモダン文法で便利というだけ
それ以上の意味はない、クールであることが唯一のメリットなんだからそこを崇めないでどうする

確認してないけどifでもエラー出すんじゃないかね
guardがifの文法エイリアスなら尚更LLVM中間コードでは同処理で等しくビルドエラーになると思う
0549デフォルトの名無しさん (ワッチョイ d0c9-fZg2)2016/09/11(日) 17:55:34.21ID:U39ML2e20
アタマ悪いなら無理してレスしなくていいんだぞ
0550デフォルトの名無しさん (ワッチョイ 9342-tq+X)2016/09/11(日) 22:59:27.98ID:BLHdbzh90
なんでことりん方式にしなかったんかね?
0551デフォルトの名無しさん (ワッチョイ f1cc-j70e)2016/09/11(日) 23:05:13.41ID:YI3Lj75B0
だからことりん言いたいだけちゃうんかと
0552デフォルトの名無しさん (ワッチョイ 1142-tq+X)2016/09/12(月) 22:35:21.24ID:qgvsKaXQ0
そりゃ言いたいけどもさ
0553デフォルトの名無しさん (ササクッテロ Sp3d-fZg2)2016/09/13(火) 09:52:51.87ID:PymBUlj8p
ことりん
0554デフォルトの名無しさん (ワッチョイ e53c-k4e8)2016/09/13(火) 14:55:38.97ID:aKSi/Ch20
Kotlinは語感が日本人の琴線に触れる

Swift-Kotlin間のコードコンバーターとか出てくるといいな
固有API呼ぶ所は無理にしてもビジネスロジック的な所けでも行けたらクロス開発しやすい
0555デフォルトの名無しさん (ワッチョイ e53c-k4e8)2016/09/13(火) 14:56:42.33ID:aKSi/Ch20
× 所けでも
○ 所だけでも
0556デフォルトの名無しさん (ササクッテロ Sp3d-j70e)2016/09/13(火) 15:43:08.59ID:GFG56Vt9p
Kotlinを何かでJavaに変換する、Javaをj2objcでObjCに変換する
iOS, MacでKotlinが動いて幸せ
Kotlin2Javaは簡単でありそう

Swiftに拘ってる話じゃないだろうから、こんなので良いんでない
0557デフォルトの名無しさん (ワッチョイ e53c-j70e)2016/09/13(火) 23:23:38.57ID:iAMkPYAu0
>>554
「コードコンバーターとか」の「とか」は、「コードコンバーター」以外の何?
0558デフォルトの名無しさん (ワッチョイ d0c9-fZg2)2016/09/14(水) 08:55:18.23ID:yHyyyith0
〔近年,若者の間で,事項を列挙するのではなく,その事項を断定する意をぼかして述べる際に「とか」を用いる用法が見られる。「『好きです』―言ってしまった」「夜はテレビ―見ている」〕
0559デフォルトの名無しさん (アウアウ Sa09-fZg2)2016/09/14(水) 08:56:07.28ID:jl7wz9Vfa
【とか】
並立助詞「と」+副助詞「か」

1) 事物や動作・作用を例示的に並列・列挙する意を表す。「漱石―鴎外―といった文人」「見る―見ない―騒いでいる」

2) 断定を避け、あいまいにするために語の後に付ける。「学校―から帰る」

>>554の用法は2の方やろうね。コードコンバータ以外の呼び方ややり方があるのかもしれないので単に断定を避けたということでしょう。物事を曖昧にする日本語的な言い回しですね。
0560デフォルトの名無しさん (ササクッテロ Sp3d-fZg2)2016/09/14(水) 10:12:01.65ID:tLM1ZrcFp
Swiftとかいうクソ言語
0561デフォルトの名無しさん (アウアウ Sa35-j70e)2016/09/14(水) 21:12:53.03ID:ulyimNOKa
swift3.0は年内にリリースされるみたいだな。
アップルの開発者Tedさんがそう予測するならそうなんだろうな。
0562デフォルトの名無しさん (ワッチョイ f1cc-fZg2)2016/09/14(水) 22:19:08.45ID:YWqZ3UVX0
>>560
知ってる
0563デフォルトの名無しさん (スップ Sdbf-wJFc)2016/09/15(木) 12:13:39.46ID:lixG8+CBd
今から作るアプリはswiftで作るべきですか?
0564デフォルトの名無しさん (オイコラミネオ MM3f-eXu6)2016/09/15(木) 12:55:27.25ID:cJcPfswqM
もちろん
0565デフォルトの名無しさん (ワッチョイ 031f-JYdZ)2016/09/15(木) 13:49:47.11ID:/7fa7B3U0
もろちん
0566デフォルトの名無しさん (アウアウ Saff-I6VW)2016/09/16(金) 00:04:15.09ID:cfskCqija
もろまん
0567デフォルトの名無しさん (ワッチョイ 333c-I6VW)2016/09/16(金) 09:52:42.29ID:fRpEGUmG0
>>566
! Use of unresolved identifier 'もろまん'
0568デフォルトの名無しさん (ササクッテロ Sp1f-wJFc)2016/09/16(金) 12:57:22.02ID:5hHEZa+Zp
>>557
kotlinコードをiOSネイティブにコンパイルするコンパイラ
とそれの動作に必要な小さなランタイム、、、とか?
0569デフォルトの名無しさん (ワッチョイ 333c-+gR2)2016/09/16(金) 18:01:14.05ID:PAOuLYzy0
歌舞伎座.tech#11「Swiftプログラミング勉強会」
2016/09/16(金) 開場:18:57 開演:19:00
lv275901485
0570デフォルトの名無しさん (ササクッテロ Sp1f-eXu6)2016/09/16(金) 19:50:50.20ID:tSfj9glEp
マジかよ。何で歌舞伎座でw
0571デフォルトの名無しさん (ワッチョイ c7c9-I6VW)2016/09/16(金) 20:07:13.93ID:fHnBwjzI0
ドワンゴ関係じゃね
0572デフォルトの名無しさん (ワッチョイ 333c-chWY)2016/09/16(金) 21:04:41.69ID:lzF3DvQ60
ニコニコ動画が完全にネイティブ化の並に乗り遅れたクソアプリなのになんでSwift勉強会なんだよ
教えて欲しいのか?
0573デフォルトの名無しさん (ワッチョイ 83a5-JYdZ)2016/09/17(土) 17:29:54.10ID:NFR6XOIf0
ニコ生おわってんな
0574デフォルトの名無しさん (アウアウ Sa9f-rld7)2016/09/17(土) 18:33:24.74ID:RsA0Xk1na
Swift 3.0 Released!
https://swift.org/blog/swift-3-0-released/
0575デフォルトの名無しさん (ワッチョイ 03cc-I6VW)2016/09/17(土) 18:37:05.53ID:nUbX15jr0
いやぁ、マジでクソシンタックスだわ
0576デフォルトの名無しさん (ササクッテロ Sp1f-wJFc)2016/09/17(土) 18:38:50.39ID:Tc+90Gr2p
終わってなきゃこんな所で客引きしてないよ
ドワンゴが終わってるのか、Swiftが終わってるのか、アポー信仰が終わってるのかの判断はムズイ

それはそれとすれ、参加者が足りないんだろうから誰か行ってやれ
0577デフォルトの名無しさん (ワッチョイ 333c-chWY)2016/09/17(土) 18:47:30.56ID:Sf7QEviY0
クリス・ラトナー「Swift 3.0 Released!」
クリス・ラトナー「開放してやったぜ……くくくく。恐怖からな。
          守るわきゃねーだろ てめーらクズとの約束なんてよォ。
          『リリース』は解除じゃなくて起爆の合図さ!」
0578デフォルトの名無しさん (スッップ Sdbf-wJFc)2016/09/17(土) 19:12:19.51ID:2LLiOXHSd
( ̄人 ̄)ナムナム
0579デフォルトの名無しさん (ササクッテロ Sp1f-I6VW)2016/09/17(土) 19:27:49.04ID:MrzC4sU6p
ボマーきてんね
0580デフォルトの名無しさん (ササクッテロ Sp1f-wJFc)2016/09/17(土) 19:51:05.21ID:uV3/5fuOp
寒いな
尻の毛まで抜かれて鼻血も出ねぇ状態なんで、これでてんやわんやするのはニワカ

macはXcodeのマイグレーション+適当に手直しするけど
サーバ側でやってる人はどうしてんの?せっせと直してる?
0581デフォルトの名無しさん (ササクッテロ Sp1f-eXu6)2016/09/18(日) 09:46:42.47ID:B3kmBTyIp
Swift2.3はいずれ爆発する時限爆弾
大規模コードの移行はほぼ失敗する
Xcode9でSwift2.4が出る可能性も十分ある
0582デフォルトの名無しさん (ワッチョイ 0362-wJFc)2016/09/18(日) 11:52:46.00ID:+iC0HZAY0
マンハッタンで爆発があったようだ
0583デフォルトの名無しさん (ササクッテロ Sp1f-I6VW)2016/09/18(日) 13:02:26.90ID:6GwrmWj4p
またあったん?
0584デフォルトの名無しさん (ワッチョイ c7c9-I6VW)2016/09/18(日) 22:22:40.86ID:dlysXj040
マンハッタンでManハッテン
0585デフォルトの名無しさん (ササクッテロ Sp1f-jsoS)2016/09/19(月) 22:21:33.33ID:suA+W+gRp
このくそ言語ヤバい
オナニー言語やで
Objective-Cはノーダメージだがswiftのプロジェクトは炎上必至
0586デフォルトの名無しさん (ワッチョイ 0362-wJFc)2016/09/20(火) 02:29:00.58ID:S81FWqDn0
Swiftなんでこんなにクソシンタックスなのよ…
無駄な新しい感()は要らないんだが
0587デフォルトの名無しさん (ワッチョイ a39a-neIk)2016/09/20(火) 03:56:37.57ID:G02V+cnw0
どのへんがクソなん?
0588デフォルトの名無しさん (ササクッテロ Sp1f-wJFc)2016/09/20(火) 14:00:42.02ID:E6vTPL2Op
ジョブズ聖遺物のObjCと競合してる所だよ
0589デフォルトの名無しさん (スッップ Sdbf-wJFc)2016/09/20(火) 14:19:23.34ID:LnLxJTTHd
>>588
まー知らないやつがジョブスを崇めているけれど、単なる商売人。

アランケイ氏が凄いのであって、ジョブスは他人の褌で相撲を取っただけ。
0590デフォルトの名無しさん (ササクッテロ Sp1f-eXu6)2016/09/20(火) 14:20:28.22ID:d4xANhZep
ジョブスが神子なら癌からでも蘇った
やつは死んだから所詮人間よ
0591デフォルトの名無しさん (スップ Sdbf-wJFc)2016/09/20(火) 15:30:07.57ID:IJCxrmDgd
swift使うメリットってなによ
0592デフォルトの名無しさん (アウアウ Saff-W8Ns)2016/09/20(火) 15:47:35.18ID:BBLKzh/ja
Appleが力を入れてる
0593デフォルトの名無しさん (ワッチョイ bf17-chWY)2016/09/20(火) 16:50:23.38ID:P4QgwbOk0
なんだかんだでSwiftが主流になるだろうな
と思いながら、面倒でまだ取り掛かってない
0594デフォルトの名無しさん (ササクッテロ Sp1f-wJFc)2016/09/20(火) 17:26:17.43ID:E6vTPL2Op
信者が食いついて金になると思ってbetaから使い続けるも
信者は聖遺物を崇めたままで、一部意識高い系も最早離れつつある

切実に商用で使う意味なくね?とは思ってる
ObjCで作ってます、のが金になるんだもんな、、、
0595デフォルトの名無しさん (ワッチョイ 2366-0HYM)2016/09/20(火) 18:12:39.08ID:XPQYGcID0
Swift 3.0でなぜ「Cスタイルのforループ」「++/--演算子」などの仕様が廃止されたのか
http://www.buildinsider.net/column/ono-masayuki/004
0596デフォルトの名無しさん (ワッチョイ 5bc9-JYdZ)2016/09/20(火) 18:14:40.60ID:noK0zumc0
>>595
>ちなみにPythonなど、いずれの仕様もない言語もある

何言ってんだこいつ
0597デフォルトの名無しさん (ササクッテロ Sp1f-wJFc)2016/09/20(火) 18:25:47.28ID:E6vTPL2Op
for-eachスタイルで性能が悪くなるってデメリットは無視してよかったのかよ
と突っ込めと言いたい

ObjCのType Propertyもそうだけど、今回の Swift, ObjCバージョンアップは
性能劣化の言語仕様変更が多くてヤになっちゃうネ
0598デフォルトの名無しさん (ワッチョイ 333c-chWY)2016/09/20(火) 19:01:08.84ID:tpphygrf0
Swiftの太鼓持ちも大変だな
0599デフォルトの名無しさん (ササクッテロ Sp1f-wJFc)2016/09/20(火) 19:27:00.62ID:E6vTPL2Op
太鼓持ちがいないことは大変だよ
part 2, 3の頃にswift笑って悪かったから、こっち向いて叩いてくれよ
0600デフォルトの名無しさん (ワッチョイ 5bc9-JYdZ)2016/09/20(火) 19:51:06.86ID:noK0zumc0
juliaでよくね
0601デフォルトの名無しさん (ワッチョイ c7c9-W8Ns)2016/09/20(火) 21:17:48.10ID:tdbJRx2v0
>>597
なぜfor-eachで性能が悪くなる?
for-eachから旧来のc style for loopへ機械的に書き換えられる以上、同等以上の速さにしかならないと思うんだが?
0602デフォルトの名無しさん (ワッチョイ 17ba-wJFc)2016/09/20(火) 21:22:39.07ID:exJo1nl60
多くの言語ではfor eachのほうが高速だな
0603デフォルトの名無しさん (ブーイモ MMbf-wJFc)2016/09/20(火) 22:39:18.90ID:A2psZARzM
>>602
えっ

今更foreachが使えるシチュでforを使おうなんて思わないけど、
foreachのほうが早い言語をむしろ知らないんだが。。

なぜだかは知らん
0604デフォルトの名無しさん (ワッチョイ 5b89-eXu6)2016/09/21(水) 00:24:56.40ID:OaRrWjlb0
初心者ですが質問させてください。
Swiftだけ勉強してもアプリを作れるようにはなりませんよね?
Cocoa、Cocoa Touchとかいうフレームワークについて知らないといけないみたいなんですよね。
Swift+Cocoaで開発してみたいと思っています。
オススメの書籍・情報源ありませんでしょうか。
Objective-Cはできることなら時間かけたくないです。
0605デフォルトの名無しさん (ワッチョイ 5b89-eXu6)2016/09/21(水) 00:40:02.74ID:OaRrWjlb0
604ですが、情報源は英語でも構いません
現在AppleがiBookで出してる
The Swiift Programming Language, Swift 3 Edition
で勉強してます。
0606デフォルトの名無しさん (ワッチョイ c7c9-1gsh)2016/09/21(水) 01:10:56.46ID:LyIIWP0R0
>>593
ABI固まってからでいいかなと思ってる。
0607デフォルトの名無しさん (ササクッテロ Sp1f-eXu6)2016/09/21(水) 02:22:59.38ID:PLPNii9cp
これから学ぼうというやつが枯れた旧言語じゃなくてまだまだ変更の多い新言語を選ぶのは実は遠回りだと思うぜ
0608デフォルトの名無しさん (ワッチョイ 0362-W8Ns)2016/09/21(水) 08:30:52.83ID:O4hgHKhE0
>>595
ほんとよみにくいなswiftって
でもってiOS/Mac OS開発にしか使えない言語感がさらに高まった
Obj-CはほぼCなんで別に問題なかったが
0609デフォルトの名無しさん (ワッチョイ 038f-W8Ns)2016/09/21(水) 10:35:03.08ID:DBqUEw9E0
>>608
swift2 -> 3でも随分変わるんやね。
http://dev.classmethod.jp/smartphone/iphone/swift3_api_design_guideline/

obj-c -> swiftをちょっとずつ進めてる感じ
0610デフォルトの名無しさん (ワッチョイ 4722-4aHJ)2016/09/21(水) 13:46:02.44ID:UUn4eSEO0
>>608
for が気持ち悪い
同じ処理を記述するのに複数の書き方ができた方がよいか
とか swift では単一の構文が強制されるような事を書いておきながら
記事内でのループの書き方は複数あるじゃねーか

>>604
初心者だったら swift はやめときな
他の言語と違いがありすぎて無駄な勉強になる
それこそ Xamarin で C# やった方がよいかも
0611デフォルトの名無しさん (ワッチョイ 17ba-wJFc)2016/09/21(水) 13:55:14.13ID:hzYJ7v8/0
objectivcは無くなるの?
0612デフォルトの名無しさん (ワッチョイ 333c-LMup)2016/09/21(水) 14:29:51.45ID:D39cTSRg0
protocol周りはマジで作り直して欲しいな
associated typeを消滅させてジェネリクスに
0613デフォルトの名無しさん (ワッチョイ 5bc9-JYdZ)2016/09/21(水) 14:34:17.18ID:ib8am8Zc0
>>611
なくならなくならなくね
0614デフォルトの名無しさん (ワッチョイ 5b89-eXu6)2016/09/21(水) 14:52:07.30ID:OaRrWjlb0
>>607>>610さん お返事ありがとうございます、>>604-605です。
ということはiOSで動くアプリを書くならObjective-Cしかないということですか……。
注目されててこれからはSwift!みたいな空気を感じたのですが現場の皆さんは警戒してらっしゃるんですね。
ちょっと考え直します。
0615デフォルトの名無しさん (ワッチョイ 8366-eXu6)2016/09/21(水) 15:16:28.52ID:w7p/jMf40
JAVAが出たのが93か94ごろで「これからはJAVA!」って
今で言う意識高い系がすぐ連呼してたけど
実用レベルで多用されて万人にオススメできるようになったのは
21世紀入ってから。だいたいアレと同じかなと思ってる。
0616デフォルトの名無しさん (ワッチョイ 9776-QrX9)2016/09/21(水) 16:52:53.29ID:meh3BzuJ0
>>615
意識高い系が正しかったんじゃねーかw
0617デフォルトの名無しさん (ワッチョイ 5bc9-JYdZ)2016/09/21(水) 17:00:58.31ID:ib8am8Zc0
>>616
javaはオワコン
0618デフォルトの名無しさん (ワッチョイ 333c-LMup)2016/09/21(水) 17:05:42.72ID:D39cTSRg0
そうは言ってもJavaは未だTIOBEでは1位だしなぁ

と思いつつリスト見てたらSwiftがObjective-C抜いててちょっと驚いた
0619デフォルトの名無しさん (スップ Sdbf-wJFc)2016/09/21(水) 19:32:08.87ID:eEMgddHid
そうはいってもJAVAは消えないと思う
0620デフォルトの名無しさん (ワッチョイ 5b89-eXu6)2016/09/21(水) 19:35:05.07ID:OaRrWjlb0
JavaのAPIリファレンスは素晴らしいですよね
Swiftはこれからなんでしょうか、あの完成度っていうのは
もしくはやる気がないんでしょうか
0621デフォルトの名無しさん (ワッチョイ 613c-5q76)2016/09/22(木) 01:02:45.36ID:DMvCB7KZ0
>>615
Javaは中間コードを吐いて、VMの上で動かすっていうアイデアが秀逸だったから
Swiftにそういう要素ある?
0622デフォルトの名無しさん (ワッチョイ 9d66-Px3x)2016/09/22(木) 01:07:22.35ID:G/UdJBbg0
むしろ、そこが実用的じゃないとして総スカン食ってたような。
言語としては次世代向けによく練ってあるって評価で
0623デフォルトの名無しさん (ワッチョイ 613c-5q76)2016/09/22(木) 15:09:02.30ID:wNhuzt960
Swiftは現時点においてOjbective-Cの代わりとしては便利だけど、
文字列操作クソだし、Rxはないし、JSONやXMLやDBは外付けライブラリ必須と全然いけてないからなぁ
0624デフォルトの名無しさん (ワッチョイ 9fc9-W8Vy)2016/09/22(木) 15:09:18.30ID:Ob4qBdWH0
>中間コードを吐いて、VMの上で動かすっていうアイデアが秀逸

初めて聴いたぞそんなの
0625デフォルトの名無しさん (ワッチョイ be0c-q5Mj)2016/09/22(木) 15:32:09.91ID:Q+uCMJ3a0
Rxやったことないんだけど、最終的にはMicrosoftのMVVMフレームワークみたいにバインド祭りになるの?
0626デフォルトの名無しさん (ワッチョイ 613c-5q76)2016/09/22(木) 16:32:46.56ID:wNhuzt960
>>625
KVOをバインディングに使ったCocoaバインディングもあったが、
Rx=超高性能なKVOという見方はできるかもね

入力がデータに限らない、イベントも時間も全部ストリーム化できるのがRx
0627デフォルトの名無しさん (ササクッテロ Spc9-Px3x)2016/09/22(木) 21:00:26.23ID:Zxdb0Mj3p
Rxはやり過ぎるとバインド設定、主に画面表示のタイミングが重くなるのがな。
0628デフォルトの名無しさん (ワッチョイ be0c-q5Mj)2016/09/22(木) 21:46:45.10ID:Q+uCMJ3a0
なんとなくわかった。俺は手を出さないことにする。
0629デフォルトの名無しさん (ワッチョイ 5f3c-Px3x)2016/09/23(金) 03:27:05.55ID:vOHl4AKX0
3でダメージ大き過ぎ。アクセスコントロール、今度のはあまり美しくない仕様だなあ。
ライブラリの名称の変更も、特に小文字に変更はダメだ。
すまん、ボヤいた。
0630デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/23(金) 09:48:54.39ID:qFln20xXp
>>624
20年前は言われてた

Swiftは小さな()ランタイムでC++にない文法がOS更新なしで使えるのが逸材だよな
他新興言語くらいに本当に小さければ尚良かった
10M弱は他言語に比べて10倍近いぜよ
0631デフォルトの名無しさん (ワッチョイ 1cba-xdvH)2016/09/23(金) 10:29:57.72ID:gb9+7gyX0
java出た当時はコンパイラもアホでネイティブC++とVMの性能差が大きすぎてな
今はかなり向上した
0632デフォルトの名無しさん (ワッチョイ 3d8f-IfJd)2016/09/23(金) 11:31:30.78ID:iqtk0HU60
>>631
.netとかもvm使ってるよね。
正直出た当時はwindowsしかないのになんでvm挟む必要あるんだ?と思ったが
今はwindowsPhoneあるしね
0633デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/23(金) 11:34:42.19ID:qFln20xXp
.NETは最近Mac, Linux公式対応したろ、、、
0634デフォルトの名無しさん (ワッチョイ 3d8f-IfJd)2016/09/23(金) 11:41:36.53ID:iqtk0HU60
>>633
でもwindows onlyだった期間が長いよね。その当時の存在意義を知りたい
0635デフォルトの名無しさん (ワッチョイ 1cba-xdvH)2016/09/23(金) 11:51:28.58ID:gb9+7gyX0
javaの真似だよ
0636デフォルトの名無しさん (スッップ Sdb8-aBDa)2016/09/23(金) 12:35:21.17ID:GXhxz+7nd
>>632
ソフトウェアエンジニアリングというのは、どんなことにも中間層を挟んで解決するから、ついついVMを作りたくなってしまうんだよ。
0637デフォルトの名無しさん (ワッチョイ 613c-O6QK)2016/09/23(金) 12:37:21.29ID:jNSiLOGk0
>>634
主にはセキュリティだよ
サンドボックス化が容易でバッファオーバーフローの防止にもなる
なのでブラウザ上などでも
0638デフォルトの名無しさん (ワッチョイ 613c-O6QK)2016/09/23(金) 12:40:51.41ID:jNSiLOGk0
「比較的」安全に動かせる


括弧でなくダブルクォートで括ったら以降の文が消えた件について
0639デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/23(金) 13:22:19.46ID:qFln20xXp
>>635
Javaじゃなくてgo, rustのマルチプラットフォーム対応だろ
他社がやってるから自分もやらなきゃって
TypeScriptはPJ閉じたから.netしかなかった

swiftもgo, rust見習ってはよクロスコンパイル対応しろや
LLVMだからどこでも動くって信者が言ってたじゃねーかよ
0640デフォルトの名無しさん (JP 0Had-VERF)2016/09/23(金) 13:37:33.82ID:AqTRNsCZH
>>634
J++ だか Java on IE だかが裁判で負けたからJava潰しに動いたと聞いた
0641デフォルトの名無しさん (ワッチョイ 1cba-xdvH)2016/09/23(金) 14:42:11.40ID:gb9+7gyX0
>>639
macが売れなくなることはしません
0642デフォルトの名無しさん (ワッチョイ fc76-dpGD)2016/09/23(金) 18:01:50.71ID:wN+HuPEq0
>>640
>J++ だか Java on IE
これ自体がJAVA潰しじゃなくてなんなのかと
0643デフォルトの名無しさん (ササクッテロ Spc9-Px3x)2016/09/23(金) 18:14:19.08ID:Bk5BJrUbp
>>630
問題は小さなランタイムをすべてのアプリに同梱する必要があるし、
まだABIが固まってないから、バージョン違えばビルドし直し、
違うバージョンのswiftバイナリ混在不可なところか
0644デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/23(金) 18:44:11.19ID:qFln20xXp
>>642
Sun Microsystems潰し
言語とランタイムは別だからな?

安定性、容量、性能と課題大杉、Swiftランタイム
3 betaで評価したらfor-eachはC-forに比べて1,000倍遅かったからな
stableでマシな速度になったのかねぇ
0645デフォルトの名無しさん (ササクッテロ Spc9-Px3x)2016/09/23(金) 19:36:42.61ID:ULoBCWNrp
>違うバージョンのswiftバイナリ混在不可なところか
マジで?
ビルド済みのframework毎にランタイムが同梱されててアプリ側はそれらを制限なく組み込めると思ってたんだけどそれは無理?
0646デフォルトの名無しさん (ワッチョイ 3d4e-fewg)2016/09/23(金) 19:46:33.54ID:hFahtCtn0
器用なランタイムだな
0647デフォルトの名無しさん (ワッチョイ 3d8f-IfJd)2016/09/23(金) 19:49:16.34ID:iqtk0HU60
>>643
イマイチABIってなんなのかわからなんから説明頼む。
ABIが固まるとビルドが不要になるってどういうこと?
0648デフォルトの名無しさん (ワッチョイ 613c-O6QK)2016/09/23(金) 19:49:20.56ID:jNSiLOGk0
CやJava等はある程度混在出来るけどね
0649デフォルトの名無しさん (JP 0Had-VERF)2016/09/23(金) 19:53:22.00ID:AqTRNsCZH
ABIが固まってれば不整合が起きないから無駄な再ビルドもいらない
0650デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/23(金) 19:55:09.35ID:qFln20xXp
SwiftはABI不安定でマングル名が競合するからな
同じ名前で別の機能/動作が割り当たってる

>>645みたいなことするとバージョン一致してたらビルド通るが
バージョン違いでリンクさせようとするとビルドエラー出す
0651デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/23(金) 19:56:38.28ID:qFln20xXp
競合以外に行方不明もあるか
0652デフォルトの名無しさん (ササクッテロ Spc9-IfJd)2016/09/23(金) 19:57:22.08ID:Se7AWhAzp
CocoaPodsを使ってるプロジェクトをSwift3に自動変換したらなんかカオス状態になったんだが...
軽く落ち込んでる
0653デフォルトの名無しさん (ワッチョイ fc76-dpGD)2016/09/23(金) 20:21:04.24ID:wN+HuPEq0
関数名まだ長いよ…
.withAlphaComponent(0.5)ってなんやねん
.alpha = 0.5 でいいじゃん
0654デフォルトの名無しさん (ワッチョイ 3d62-xdvH)2016/09/23(金) 20:24:32.83ID:nEqelPbM0
クソゲンゴナムナム
0655デフォルトの名無しさん (ワッチョイ 9f89-Px3x)2016/09/23(金) 21:05:10.35ID:AjP6Xmnm0
小飼弾さんはなぜSwiftを絶賛してるんだろう
0656デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/23(金) 22:47:14.18ID:4YuqY+81p
>>653
それはクソゲンゴobjcが悪い(名推理
0657デフォルトの名無しさん (ワッチョイ 613c-5q76)2016/09/23(金) 23:12:47.42ID:OnzATaqQ0
咎を背負う言語オブシー
0658デフォルトの名無しさん (スッップ Sdb8-xdvH)2016/09/24(土) 01:44:15.93ID:moJheYL3d
スイフトトイウクソゲンゴノセイデタクサンノヒトガメイワクシテイル
オブジェクティブシーノママデナニモモンダイナカッタノニ
ヤッチマッタナアップル
オワリノハジマリ
0659デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/24(土) 09:30:31.64ID:aI8ESMcAp
>>652
なんで2.3にしないのか
外部ライブラリを不用意に書き換えるリスクは少なくねーぞ
0660デフォルトの名無しさん (ササクッテロ Spc9-Px3x)2016/09/24(土) 13:36:19.08ID:cfcelSBAp
>>653
代入できないのはuicolorが不変クラスだからでしょう
0661デフォルトの名無しさん (ワッチョイ e0c9-IfJd)2016/09/24(土) 22:32:06.37ID:RAmnQ68G0
来年にはUIColorも値型のColorになって .alpha = 0.5 って書けるようになるだろう
0662デフォルトの名無しさん (ササクッテロ Spc9-3Nke)2016/09/24(土) 22:44:13.60ID:rbaWKTimp
UIColorとNSColorとCGColorとCIColorと、色に関するオブジェクト大杉
SwiftやObjCとかそういうレイヤーじゃなく根本的な所で見直してくれい
Core Graphics と Core Image で分かれてるってアポーはObjCの時点でオワットル
0663デフォルトの名無しさん (ワッチョイ 9d66-Px3x)2016/09/24(土) 23:18:31.54ID:U+a4Ghts0
もともと長い意味のわかるような名前ってのはクソギークがやらかす
引き継いだら誰にも読めない暗号コードを"作らせない"という伝統で
デフォルトが長いのはさらにそこからユーザー定義と被らないように
プリフィックスを足してるからなのだけど
クソギークはその辺りまったく自覚できないまま素でクソをわざと組みやがる。
そんなんだからWindowsみたいな毎回関係者がソース解読と構造解析から入って
全然バージョンの上がらねぇクソの山ができたっつうのに
いいからWindowsに帰ってCDに入ったプログラムをパッケージ販売してろおまえらは。
21世紀に来るな。
0664デフォルトの名無しさん (ワッチョイ 1cba-xdvH)2016/09/24(土) 23:34:12.95ID:HWd5b6Z30
もう少し出来上がってからリリースしてくれ
APIが貧弱すぎる
0665デフォルトの名無しさん (ワッチョイ 613c-5q76)2016/09/24(土) 23:42:26.62ID:7XUJpj8a0
iOS内臓アプリの質もどんどん落ちてるのがやばいな
0666デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/25(日) 03:02:02.27ID:PHERX7lpp
>>663
それはお前が20世紀に戻るべきではw
0667495 (ワッチョイ 997d-Px3x)2016/09/25(日) 07:07:03.05ID:GuFWjhTV0
Swiftは暗黙の数値キャストがなくなったせいで、
今まで楽できていた所が若干面倒になった印象だよね。

まあでもOSがレイヤー構造にしてあるからこそ
どんどん下位レイヤーをすげ替えする事ができた。
その結果同じような数値型が山盛り量産されて、
Swiftでは型変換意識する作業が沢山になったのはやむを得ないと思う。
0668デフォルトの名無しさん (ワッチョイ 613c-5q76)2016/09/25(日) 09:16:33.43ID:KXL4C0qA0
Appleから見た一般プログラマは暗黙の型変換すらまともに使いこなせない愚図だらけだからしょうがない
0669デフォルトの名無しさん (ワッチョイ 1c42-5q76)2016/09/25(日) 09:28:54.66ID:mram+2As0
Swift自体は悪くないのに
それを取り巻く遺産が重荷になってるのか

1から作ればよかったのに
JavaもC#もそうしてるんだし
0670デフォルトの名無しさん (ワッチョイ 3d62-IfJd)2016/09/25(日) 09:37:05.73ID:aoHpK4fu0
>>669
>Swift自体は悪くないのに
www
0671デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/25(日) 10:07:48.06ID:PHERX7lpp
暗黙の型変換を禁止したのはrustのパクリだろう
rustはtraitでフォローしてるから随分便利だけど
swiftはフォローしないからただただ不便に落ちてる

>>670
具体的にダメな点が挙げられないならアンチスレ行ったら?
0672デフォルトの名無しさん (ワッチョイ b693-Px3x)2016/09/25(日) 11:06:49.57ID:6e+YN9BI0
>>667
俺も明示的型変換は賛成

Visual c++とかの混乱状況に比べればはるかにマシ
0673デフォルトの名無しさん (ワッチョイ 9717-Px3x)2016/09/25(日) 16:30:37.23ID:WPD93Cjo0
>>669
しがらみ無しで1から作ってるんじゃないの?
0674デフォルトの名無しさん (ササクッテロ Spc9-Px3x)2016/09/25(日) 20:11:06.13ID:l62dNqvQp
型変換でいいところをイニシャライザ使わせるのがダメ
特にAnyなんとかでラップする仕組みは言語の欠陥としか思えない
0675デフォルトの名無しさん (ワッチョイ 7a20-3Nke)2016/09/25(日) 20:45:40.46ID:7pznc3qa0
let a: Int = 0
let b: Int32 = a
let c: Bool = a

こんな柔軟な型変換、C++の延長上にあるSwiftにできんのかな, やりようはありそうだけどABIがまた盛大にぶっ壊れそう
アップルお得意の自分で定義した特定の組込型(プリミティブ/構造体型)だけ互換するってんなら、いっそいらんぞ
NSArray(ObjC)とArray(Swift)の互換とかもそうだけど、無駄なオーバーヘッドくうし頭悪くて極力使いたくない
0676デフォルトの名無しさん (ワッチョイ 35f9-Px3x)2016/09/25(日) 21:11:37.24ID:POny1dUv0
selfはクロージャ内では必須ですが、それ以外は任意ですよね。みなさんはどうしていますか?私は個人なのでガイドラインもなく、極力書かないようにしています。
0677デフォルトの名無しさん (アウアウ Sa4e-IfJd)2016/09/25(日) 21:14:30.78ID:RZAYPghea
たとえ精度の低い数値型から、精度の高い数値型へであっても暗黙の変換をしない理由ってなんだっけ?
0678デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/25(日) 21:30:19.65ID:L4PYs0IXp
それぞれの構造体型が数値であり、互換性がある
という特別扱いを実装してる余裕がなかった
そういう特別扱いを許すとじゃあこれもってキリがなく、1.0リリースが出来なかった
とかの理由じゃね

>>676
JSじゃないから書かない、JSでもコーディングガイドラインで指示されなきゃ書きたくないけど
0679デフォルトの名無しさん (スプッッ Sdc8-xdvH)2016/09/25(日) 21:39:09.04ID:JXP+24Rzd
appleはほんと無能だなあ
早くこの世から消えないかなあ
0680デフォルトの名無しさん (JP 0H25-Px3x)2016/09/25(日) 23:52:49.84ID:ezPKoiBqH
Decimalの公式な説明が一切ないのが腹立つ
会計計算にDouble使わせるつもりなんだろうかSwiftは
またはNSDecimalNumber使えってか
0681デフォルトの名無しさん (ワッチョイ 3d4e-IfJd)2016/09/26(月) 00:07:09.88ID:9Urnqoxa0
つーかさ、いつのまにかドキュメントがSafariで開くようになってんだがw
NSDecimalもそうだし、CF系のリファレンス見れなくね?
0682デフォルトの名無しさん (ワッチョイ 3d4e-IfJd)2016/09/26(月) 00:27:54.42ID:9Urnqoxa0
>>680
なんかすげえ探しづらいんだけど、とりあえずadd
https://developer.apple.com/reference/foundation/1408473-nsdecimaladd
0683デフォルトの名無しさん (ワッチョイ 3d4e-IfJd)2016/09/26(月) 00:30:55.10ID:9Urnqoxa0
>>680
ここにindexあるわ
https://developer.apple.com/reference/foundation/1613024-foundation_functions
0684デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/26(月) 01:08:03.57ID:PbMEPhvdp
Xcode8(swift3) stableに合わせてリファレンスフォーマット変わったな
意識高い系が好むデザインだ
個人的にはくっそみづらいと思ってる

>>676
クロージャーで使うのはいいが、適所ではweak refにしろよ?
なんか考えてなさそうで怖い
0685デフォルトの名無しさん (スップ Sdc8-xdvH)2016/09/26(月) 01:12:56.22ID:R3wOb+end
はぁ糞すぎる
0686デフォルトの名無しさん (ワッチョイ 3d62-IfJd)2016/09/26(月) 08:25:30.51ID:AJOvilMi0
>>685
わかる
0687デフォルトの名無しさん (ワッチョイ e0c9-IfJd)2016/09/26(月) 08:57:32.40ID:yvxcncPt0
Decimal、値型になって便利になったやん
APIドキュメントもちゃんとあるやろ
無能ほどSwift批判するな、ホンマ
0688デフォルトの名無しさん (ワッチョイ e0c9-IfJd)2016/09/26(月) 09:01:54.34ID:yvxcncPt0
アホばっかやから一応貼っといたるか…
https://developer.apple.com/reference/foundation/decimal
0689デフォルトの名無しさん (アウアウ Sa4e-IfJd)2016/09/26(月) 11:41:46.49ID:giYRhX1ba
>>685
禿同
0690デフォルトの名無しさん (ササクッテロ Spc9-Px3x)2016/09/26(月) 13:14:54.79ID:jcuOs/Yup
厳密な型は安全かも知れないけど初見殺し的な意味では取っつきやすい言語ではなくなってきてるよね
0691デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/26(月) 14:19:48.37ID:LCl6P2Rip
取っ付き易さなんてどうでもよくてアポーらしい革新的なものであれば良い
ジョブズ信者が信仰心こじらせて古き良き伝統を尊重してるのが悪い

対信者ビジネスのiOSでSwiftは難しいネ
他のどこでSwift使えるのよという話はあるが
0692デフォルトの名無しさん (ワッチョイ 9f89-Px3x)2016/09/27(火) 03:48:04.10ID:N2g0Vkt/0
この言語勉強するのつかれません?
0693デフォルトの名無しさん (スプッッ Sdc8-xdvH)2016/09/27(火) 08:03:05.01ID:v2vawIwod
appleの相手をするのはいつでも疲れるよ
この世から消えて欲しい
0694デフォルトの名無しさん (ワッチョイ 613c-Px3x)2016/09/27(火) 19:56:20.75ID:wMov4Qi00
なんで、自分が立ってる足元は見ないで
「あのブドウは酸っぱいに違いないから消えて欲しい」言うかなぁ…
そろそろアレが「パソコン」といっしょに滅びつつあるの自覚し始めてるっしょ?
0695デフォルトの名無しさん (ワッチョイ 1c42-5q76)2016/09/27(火) 23:02:32.99ID:pJiHchri0
ブドウたべたい
0696デフォルトの名無しさん (アウアウ Sa4e-IfJd)2016/09/28(水) 00:19:08.74ID:2l/Ja6Osa
スケベ
0697デフォルトの名無しさん (スフッ Sdb8-Px3x)2016/09/28(水) 12:41:49.83ID:W7Nr4F+fd
>>692
c++に比べたら100万倍くらい簡単
0698デフォルトの名無しさん (ワッチョイ 613c-IfJd)2016/09/28(水) 21:51:50.26ID:BK3GeT+f0
C++と較べてもなぁ…完全に用途が違うし。
C++でできることSwiftでできんの?って言われたらできない訳だし
生ポインタベースのカッチリしたメモリ管理とか、
構造体アラインメントの指定とか、エンディアンの処理とか
0699デフォルトの名無しさん (ワッチョイ 613c-5q76)2016/09/28(水) 22:03:06.28ID:ZL+igzyn0
ゴム付きポインタしか知らない Swift くん
0700デフォルトの名無しさん (ササクッテロ Spc9-xdvH)2016/09/28(水) 23:32:29.72ID:Kxaor4rlp
死に目に会うけどUnmanagedHogeで操作できるけどな
C++の代わりに使うものじゃないは同意
ObjC, Node.jsのどっちか(もしくは両方)の市場狙いの言語だったと思ってる(過去形
0701デフォルトの名無しさん (ササクッテロ Spb7-LGiF)2016/09/29(木) 18:39:47.97ID:AciNgn+Dp
レジスタに中出ししたい
0702デフォルトの名無しさん (ワッチョイ 47ba-rzru)2016/09/29(木) 20:18:41.12ID:TO8dgYTa0
いやらしい
0703デフォルトの名無しさん (アウアウ Sa77-LGiF)2016/09/30(金) 00:17:18.35ID:MJJqEOOza
Swiftのプロトコルって、Javaでいうインターフェースとまったく同じように使えると考えていいですか?
0704デフォルトの名無しさん (ワッチョイ eb3c-RPp1)2016/09/30(金) 00:42:51.48ID:jJsdj4Dp0
劣化しすぎてて同じようには使えない
0705デフォルトの名無しさん (ワッチョイ 47ba-rzru)2016/09/30(金) 00:49:24.53ID:C+nAwWAE0
がーん
0706デフォルトの名無しさん (ワッチョイ 4389-LGiF)2016/09/30(金) 03:24:52.00ID:0KJtriWI0
AppleのiBooksが出してる
"The Swift Programming Language, Swift 3 Edition"
をウェブサイトで日本語訳をまるまる公開したら著作権上何か問題あるでしょうか。
0707デフォルトの名無しさん (ワッチョイ 1b8f-dvmP)2016/09/30(金) 03:32:17.52ID:ff48EwFg0
>>706
出して怒られてから対処すればいいんじゃない。
0708デフォルトの名無しさん (ワッチョイ 17ba-rzru)2016/09/30(金) 06:16:42.54ID:gcg3EsB90
去年から定期的にこのスレ見にきてんだけども
そろそろ仕様固まりました?
0709デフォルトの名無しさん (ワッチョイ 1b62-dvmP)2016/09/30(金) 08:26:46.31ID:60ZsIOz70
まだだよーんwww
0710デフォルトの名無しさん (スプッッ Sd0f-rzru)2016/09/30(金) 08:33:22.52ID:jVSKZUpGd
仕様を固めるだなんて林檎には無理な話ですよ
0711デフォルトの名無しさん (ササクッテロ Spb7-LGiF)2016/09/30(金) 08:34:33.29ID:tZ08Eyszp
>>706
意識高いSwift使いにガチギレされる
それで前の日本語化サイトは消えた
英語読めるやつだけが言語仕様知ってる状態がいいんだとさ
0712デフォルトの名無しさん (スプッッ Sd0f-rzru)2016/09/30(金) 08:36:47.65ID:jVSKZUpGd
>>706
林檎に聞いてみればええやん
さすがの林檎も言語仕様で著作権主張せんやろw
0713デフォルトの名無しさん (ワッチョイ 97c9-dvmP)2016/09/30(金) 08:43:45.77ID:p4qVFaK60
今はオープンソースになったんだから別に問題ないだろ
0714デフォルトの名無しさん (ワッチョイ 97c9-dvmP)2016/09/30(金) 08:47:48.51ID:p4qVFaK60
と思ったけど、本はソースに入ってないから厳密にはやっぱダメか?
APIドキュメントはソースのヘッダドキュメントから生成されてるからオープンソースライセンスが継承されるだろうけど
0715デフォルトの名無しさん (ワッチョイ 1b62-dvmP)2016/09/30(金) 08:48:48.24ID:60ZsIOz70
>>711
あほくさ
0716デフォルトの名無しさん (ワッチョイ 97c9-dvmP)2016/09/30(金) 08:50:44.29ID:p4qVFaK60
いや、やっぱ大丈夫だ。本はCC BYだ
https://swift.org/documentation/
This ePub document is made available under a Creative Commons Attribution 4.0 International (CC BY 4.0) License.
0717デフォルトの名無しさん (ワッチョイ fb7b-js6q)2016/09/30(金) 10:43:02.12ID:Vq/K1hOR0
作成したIOS用アプリを、遠方にいるxcodeを持っていない友人にテストして
もらおうと思うのですが、たまにsafariからアプリをインストールできるサイトが
ありますよね?この方法が使えれば使いたいのですが、あれはどのような仕組みになっているのでしょうか?
単にipaファイルをダウンロードするだけではなさそうですが・・・
0718デフォルトの名無しさん (ワッチョイ 4b7b-dvmP)2016/09/30(金) 10:44:47.66ID:fltLgPD00
>>717 スレチ
[SDK]iPhoneアプリ開発初心者質問箱47[touch][iPad] [無断転載禁止]©2ch.net [無断転載禁止]©2ch.net
http://potato.2ch.net/test/read.cgi/mac/1470902093/
0719デフォルトの名無しさん (スフッ Sd8f-LGiF)2016/09/30(金) 12:38:33.87ID:o39mJXI1d
>>717
知らんけどうちはXCodeインストールしてもらってる
0720デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/09/30(金) 12:47:10.16ID:xsUewzoZp
知らんのなら一緒に初心者スレ行ってこいよw
Swift 3に合わせて出たわけでもなく、何年前のノウハウだよ
0721デフォルトの名無しさん (オイコラミネオ MMef-LGiF)2016/09/30(金) 13:43:33.67ID:DEDnhy0IM
internalやselfなど省略可能な単語は書くのと書かないのどちらの方がSwiftyだと思う?
0722デフォルトの名無しさん (ワッチョイ eb3c-dvmP)2016/09/30(金) 22:17:17.91ID:47zcsaWZ0
>>721
場合によるかも
selfは全部つけた方がいいかと思ったがダルいので
selfを強調したいときだけつける
internalは必要なシチュが思い浮かばない
0723デフォルトの名無しさん (ワッチョイ 4389-LGiF)2016/10/01(土) 01:45:34.55ID:akodGXRp0
そういえば、AppleのThe Swift Programming Languageで時々「マルチスレッドでの処理の場合は初期化処理がどーのこーの」とかいう注意書きをたまにみるんですが、その割には「マルチスレッド」という章がないんですよね。
Swiftでのマルチスレッドってどうなってるんですか?
結局、他言語で実装するんですかね?
0724デフォルトの名無しさん (ワッチョイ cf93-LGiF)2016/10/01(土) 05:58:14.58ID:Ml/WRmOH0
>>723
さぁ?

おれはNSOperationQueue使ってるけど、、、
それをswiftのマルチスレッドと呼ぶのかどうかは知らん
0725デフォルトの名無しさん (ワッチョイ eb3c-+y5M)2016/10/01(土) 09:09:29.29ID:DfLcjG5I0
>>723
func async(b: () -> ()) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), b)
}

async {
print("非同期")
}
0726デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/01(土) 09:38:36.77ID:wi7Kskn0p
NSOperationから先祖帰りしたgcdかなw

swift3の out of scope で concurrency だったから
swift4で仕様に取り込みたいんじゃないのかね
goroutineライクにするのかstd::threadライクにするのか知らんけど
0727デフォルトの名無しさん (ワッチョイ eb3c-RPp1)2016/10/01(土) 11:06:14.14ID:YMAcE0TL0
>>726
Swift4は前半はSwift3のやり残し、後半で言語仕様に大きな影響を与えない機能追加
concurrencyが入るのはSwift5だと思われる
0728デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/01(土) 11:14:53.44ID:wi7Kskn0p
どうせgoroutineパクリはLLVM機能仕様で実現できないんだから
std::threadをはよ取り込んでくれれば良いのにな
Swiftだけやるってわけにはいかず、ObjCを視野に入れて out of scope だったんだろうけど
goroutineを諦めれば3で入れれたと思う
0729デフォルトの名無しさん (スッップ Sd8f-rzru)2016/10/01(土) 13:48:46.86ID:DTkaTyc5d
>>723
言語仕様と、オペレーティングシステム仕様を、ごちゃ混ぜにしていないか?
確かにAppleは一体化している感は、あるけれど、言語仕様とオペレーティングシステム仕様は違うよ。
0730デフォルトの名無しさん (ワッチョイ eb3c-LGiF)2016/10/01(土) 20:41:30.19ID:p0KZZOg90
もともとObjective-Cだとクラスに命令投げたらブラックボックスで
「あとはクラスがよしなにやるもの」って基本思想だからなぁ。
暗示的に返り値来ないと次のステップ進めねぇよとかでもなけりゃ。
0731デフォルトの名無しさん (ワッチョイ 47ba-rzru)2016/10/01(土) 21:43:05.44ID:ICXd6NI20
ある機能だけcのapi使えだなんて不完全極まりない糞言語だな
0732デフォルトの名無しさん (ワッチョイ cf93-LGiF)2016/10/01(土) 23:21:45.19ID:Ml/WRmOH0
>>731
そんなの他の言語でも普通やん

API呼ばずにまともに動ける言語って見かけないぞ
初期のJavaはそれを目指してたけど結局成功しなかったし
0733デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/02(日) 09:50:20.29ID:fOGBvveWp
swiftディスりたいのに悉く的が外れてる子かわいそう
アンチスレきなよ、あそこなら無粋な突っ込みしないで賛同してあげるからさ
0734デフォルトの名無しさん (ワッチョイ 1b62-rzru)2016/10/02(日) 13:53:59.95ID:jKKOWExd0
モダン()な言語Swift
0735デフォルトの名無しさん (スップ Sd0f-rzru)2016/10/02(日) 16:10:17.02ID:z9x7nIQbd
>>732
androidは基本的にはjavaで完結できてるんだよなあww
0736デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/02(日) 16:31:41.14ID:fOGBvveWp
>>735
ワロタwww
0737デフォルトの名無しさん (ワッチョイ 97c9-dvmP)2016/10/02(日) 16:41:53.93ID:6q2A7e6W0
オブCがオブCで完結できてなかったから今はまだしゃあない
0738デフォルトの名無しさん (ワッチョイ 1b4e-dvmP)2016/10/02(日) 16:50:43.92ID:LuMhVifb0
作るか探すかしてみろよw
https://www.google.co.jp/search?q=swift+wrapper+for+GCD
0739デフォルトの名無しさん (スフッ Sd8f-LGiF)2016/10/02(日) 17:29:01.69ID:vtVn8OpVd
>>735
いや、それと同じ意味やったらiOS/macOSもswiftで完結しとうやん

言語仕様と
言語の標準ライブラリと
OSのAPIと
外部ライブラリは

意味が一緒なんやね、あなたの中では
0740デフォルトの名無しさん (アウアウ Sa77-rzru)2016/10/02(日) 17:42:44.66ID:lK3/8nBLa
>>739
本当に頭が悪いなあ
君はなにも理解できてない
0741デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/02(日) 18:05:00.45ID:fOGBvveWp
大笑いした俺も理解できてないから
Java, Swiftをどこのレイヤーで切ってネイティブIF不要と言ってるのかおせーて
0742デフォルトの名無しさん (ササクッテロ Spb7-LGiF)2016/10/03(月) 02:01:00.97ID:LP69Agyrp
>>741
アプリケーション層。
0743デフォルトの名無しさん (ワッチョイ 3f93-LGiF)2016/10/03(月) 06:38:32.71ID:oL0ibHeJ0
どの環境でもmedialayerとかnativeのラッパでしょ?
スレッディングだってやっぱりOS環境のラッパに過ぎないじゃん。

ある機能だけcのapi呼び出すなんて、って書いてあったが、ドングリの背比べじゃないかな。
0744デフォルトの名無しさん (ワッチョイ 1b62-dvmP)2016/10/03(月) 07:39:22.01ID:CAj1h+Mp0
で、何でSwiftに変える必要があったの?
何か切迫した理由でもあった?
0745デフォルトの名無しさん (ワッチョイ cf93-LGiF)2016/10/03(月) 07:48:43.48ID:LEeITTxF0
>>741
ネイティブインターフェースが要らへんとは言うてへんねんで
むしろネイティブインターフェース無しでプログラムなんか書かれへん


JavaはJNIを通じてOSコールやその他のライブラリを呼び出す
Swingはブリッジ機能を通じてOSコールやその他のライブラリを呼び出す


androidがJavaだけで完結できると言うのはJNIを通じたandroidのライブラリやOSコールの呼び出しを「Java」という概念に含めて考えているわけで

同じレベルで考えるとブリッジ機能を利用してるのは「swift」に含めて考んとおかしいやろ?って言いたいだけ
どこまでを言語に含めるのかは多少解釈の幅があるもんやけど、比較するならレベルを揃えなあかん
0746デフォルトの名無しさん (ワッチョイ cf93-LGiF)2016/10/03(月) 08:10:45.50ID:LEeITTxF0
おれの個人的な趣味で言うと
「言語仕様+言語の標準ライブラリ」は広義の言語に含めると思とうねん

つまりOSやOS側の標準ライブラリが変わっても影響を受けずに動作する部分


議論の最初だったマルチスレッドに関しては

JavaはJava言語として対応
Swiftは言語としては非対応で、外部の機能を呼び出して実現

やと思う


ちなみに
NSThreadはPOSIXスレッドのラッパー
GCDはBSDライブラリのラッパー
NSOperationQueueはmacOS/iOSライブラリの呼び出し


GUIに関しては言語レベルでのサポートは夢として消えてもたなぁ
0747デフォルトの名無しさん (ワッチョイ 47ba-rzru)2016/10/03(月) 08:55:26.33ID:lp1ea7NO0
>>746
それや
0748デフォルトの名無しさん (ワッチョイ 4389-LGiF)2016/10/03(月) 17:14:48.44ID:TvIcf+Ih0
>>746 勉強になりました
0749デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/03(月) 20:24:01.94ID:Lbg3z6+2p
何が言いたいのかさっぱり
3行でおk

NSThread, GCD, NSOperationの下りも要はOSスレッドをライブラリでラップしてるだけで
そこにどれほどの意味もないよなあぁ
0750デフォルトの名無しさん (スップ Sd0f-rzru)2016/10/03(月) 20:50:30.92ID:Yg1KMUzJd
あ
0751デフォルトの名無しさん (スップ Sd0f-rzru)2016/10/03(月) 20:52:57.09ID:Yg1KMUzJd
みす
言語とframeworkを混在してて理解不能だわ
OS APIがFWでラッピングされててそれがswift言語で使えるんだからandroidと何も変わらんよ
0752デフォルトの名無しさん (ワッチョイ 3f93-LGiF)2016/10/03(月) 20:55:26.01ID:oL0ibHeJ0
区別したい理由が今ひとつわからない。
SwiftのGui Support=Appkit(mac)でいいじゃない。
Appkitが嫌いな理由をSwiftのせいにしたいだけ?
NSOBject をinheritすれば今までと何も変わらないよ。
0753デフォルトの名無しさん (アウアウ Sa3f-6DZd)2016/10/03(月) 21:11:28.71ID:kit7ebSra
>>706

ないない。公式サイト

https://swift.org/documentation/#the-swift-programming-language>;"The Swift Programming Language, Swift 3 Edition"
のTranslationsを見ると。

C.Cライセンスになっていて他国語への翻訳が奨励されている。既に中国語訳プロジェクトが立ち上がっている。

日本語訳は
http://www.studiogalago.com/the-swift-programming-language/
の中の人が一人でコツコツやっているみたいだけど。facebookに日本人用Swiftグループがあるんだし、手分けしてやればいいのに。


>"The Swift Programming Language, Swift 3 Edition"
0754デフォルトの名無しさん (アウアウ Sa77-rzru)2016/10/03(月) 23:07:38.65ID:zZ0UVd5la
なんでわざわざ日本語にするのかわからん
英語のままでいいじゃん
むしろ日本語より英語の方が理解し易い。
0755デフォルトの名無しさん (アウアウ Sa3f-6DZd)2016/10/03(月) 23:51:22.95ID:WEC8L0VSa
 日本語版はあったほうがいいと思うけど、iOSの翻訳本どころか中上級者向け本すら
ほとんど出なくなったこのご時世、この程度の英文ぐらい読めないと、とてもこの先や
っていけないなと思っている。
0756デフォルトの名無しさん (ワッチョイ 47ba-rzru)2016/10/04(火) 01:26:47.50ID:Dt4PYZAL0
>>754
英語読めない奴のためにに決まってるだろ?ガイジか?
0757デフォルトの名無しさん (ワッチョイ eb3c-LGiF)2016/10/04(火) 09:14:46.40ID:NKvGRo0c0
日本語すらまともに喋れないガイジに英語ができると思うか?
0758デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/04(火) 09:43:44.83ID:i7Qr0kn4p
意識高い系には英語のままの方が良い
日本人は意識高いから仕方ないね

あと、正直和訳手伝おうと思うほどswiftが良い言語とは思ってねぇ
母国語に訳してまで布教しようという輩も少ないんだろうな
0759デフォルトの名無しさん (ササクッテロ Spb7-LGiF)2016/10/04(火) 10:47:29.04ID:xf+8uPWEp
機械翻訳が嫌いなだけじゃ?
理解した人が書いた翻訳本じゃないと頭に入りにくいんだよね。

まあこれを
頭に入りにくいを避けるために、一度理解してから本を書くべき。
て書かれると眠くなる。
0760デフォルトの名無しさん (ワッチョイ eb3c-jX1/)2016/10/04(火) 11:11:09.40ID:v1bCBuZQ0
printf → 標準
thrd_t → 標準(C11から)
pthread → 非標準(ただしPOSIX標準)
std::thread → 標準
boost → 準標準
java.lang.Thread → 標準
android.* → 非標準
System.Threading → 標準
GCD, NSOperation, NSThread → 準標準(コアライブラリ対象)

標準ライブラリ
http://developer.apple.com/reference/swift

コアライブラリ
http://swift.org/core-libraries/
0761デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/04(火) 11:48:01.85ID:i7Qr0kn4p
std::threadもC++11からー
GCDやNSを準標準というならjava.lang., android.も準標準にしようよ

goやC#みたいに言語文法として非同期をサポートしてようやく区別したい
C#は実態はVM/OSスレッドであんま意味ないかもだけど
グリーンスレッドの言語はイマドキもうないし仕方ない
0762デフォルトの名無しさん (ワッチョイ eb3c-jX1/)2016/10/04(火) 12:02:45.28ID:v1bCBuZQ0
C++11を書いてないのはboost→0x/TR1の経緯があるため
C11のスレッドはC++の経緯を踏まえて規定された

コアライブラリはオープンソース版の標準ライブラリ候補だが
android.はそうではない
java.langは疑う余地なく標準ライブラリ
0763デフォルトの名無しさん (ササクッテロ Spb7-rzru)2016/10/04(火) 12:57:30.84ID:i7Qr0kn4p
java.langフルセットがないVM環境もあり非標準だし
Android OS上ならandroid.は標準だし

言語、ライブラリ、OSが未だ混ざっとるよ
0764デフォルトの名無しさん (ワッチョイ eb3c-jX1/)2016/10/04(火) 13:05:52.99ID:v1bCBuZQ0
俺はライブラリの話しかしてないんだが・・・

Micro EditionとかAndroid OS上ならとか
むしろ話を混ぜようとしているようにしか
0765デフォルトの名無しさん (ワッチョイ 4389-LGiF)2016/10/04(火) 13:33:13.53ID:WapAY2ic0
プロの人たちは話が違いますね、さっぱりついていけません
週末アプリデベロッパーの私には何がなんだか
0766デフォルトの名無しさん (ササクッテロ Spb7-LGiF)2016/10/04(火) 18:33:58.44ID:y9UbKKIdp
>>765
チミ、ここは業務経験3年未満は書き込み禁止だよ
0767デフォルトの名無しさん (スプッッ Sd0f-rzru)2016/10/04(火) 19:58:49.78ID:5dghqSRwd
なんやてええ
0768デフォルトの名無しさん (ワッチョイ 3f93-LGiF)2016/10/04(火) 20:25:46.12ID:IdCdVGLg0
あまちゃぷろぐらまのおいらが通りますよAA
0769デフォルトの名無しさん (スップ Sd0f-rzru)2016/10/04(火) 20:26:27.55ID:hlZ0J84nd
かえれ
0770デフォルトの名無しさん (ワッチョイ eb3c-RPp1)2016/10/04(火) 21:38:52.89ID:xtb8Y0IH0
うちの会社はSwiftの業務経歴3年以上の人しか取らないから全員が精鋭
恐らくうちよりSwiftに強い会社はないと思う
0771デフォルトの名無しさん (ワッチョイ 47ba-rzru)2016/10/04(火) 21:43:16.02ID:Dt4PYZAL0
未来からお疲れさまです
0772デフォルトの名無しさん (スフッ Sd8f-LGiF)2016/10/04(火) 21:56:25.21ID:hInAwTWed
よし、深夜残業前だし
お茶にしようぜ!みんな
0773デフォルトの名無しさん (ワッチョイ 97c9-dvmP)2016/10/04(火) 23:14:11.51ID:BmI86IBN0
残業とか社畜かよ
0774デフォルトの名無しさん (ワッチョイ eb3c-RPp1)2016/10/04(火) 23:21:25.16ID:xtb8Y0IH0
知らないのか?Swiftのコミットがピークになるのは深夜なんだぜ?
やはりSwiftを作るような人間は睡眠なんかに甘えずに没頭してるんだろうな
0775デフォルトの名無しさん (ワッチョイ c3d4-rzru)2016/10/04(火) 23:46:08.65ID:LNwBTeCj0
Swiftは惜しい、いろいろ欲張り過ぎ
勉強すればするほど、興ざめしてくる
0776デフォルトの名無しさん (ワッチョイ 4f90-LGiF)2016/10/05(水) 00:07:07.67ID:LHL1VZ3r0
matlab compilerで生成した共有ライブラリをswiftで使いたいのですが、可能でしょうか?
よろしくお願いします。
0777デフォルトの名無しさん (ワッチョイ fb8a-LGiF)2016/10/05(水) 01:31:42.33ID:aOjqsY1h0
>>774
つ...釣られないぞ!
0778デフォルトの名無しさん (スプッッ Sd0f-rzru)2016/10/05(水) 08:14:03.12ID:HknmeI4vd
>>777
ツッコミたいのを我慢するのって苦痛だよ
0779デフォルトの名無しさん (スフッ Sd8f-LGiF)2016/10/05(水) 08:33:29.11ID:/Fhwgvpsd
でもまあ、使いたい機能が、言語なのか、実行環境なのか、外部ライブラリなのかは気になるよな
特にプロジェクト立ち上げ時の実装方針決める時

近々想定されるイベント、、、
「おーい、アンドロイドがSwift対応になったらしいぞ
あのiPhoneアプリ、アンドロイドで動かしてくれ」
「…………」
0780デフォルトの名無しさん (スプッッ Sd0f-rzru)2016/10/05(水) 08:54:35.56ID:HknmeI4vd
swiftなんて腐林檎以外に使われないから心配無用
0781デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/06(木) 08:05:41.42ID:YBMzX3RA0
何れにしてもSwiftのゴリ押し感をどうにかしろまず
0782デフォルトの名無しさん (スフッ Sda8-pu+C)2016/10/06(木) 09:08:17.84ID:is5Ej1+Qd
でもまぁswift使いたく無い人には他の選択肢も残されてるんだから別にいいんじゃない?

どんな言語も一長一短だし
0783デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/06(木) 09:09:46.40ID:z1yq3vtzd
別の選択しとは?
0784デフォルトの名無しさん (ワッチョイ 353c-+EyG)2016/10/06(木) 09:35:10.64ID:miDFWnTh0
>>783
ObjC「ひどい、私のことはもう忘れたというの?」
0785デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/06(木) 18:30:29.65ID:6nlxRpPjd
>>782
選択肢がなくなる予定だからゴリ押しって言われてんだろう…
バカなの?
0786デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/06(木) 18:33:19.57ID:5Myi1vl0p
それは初めて聞いたわw
マジならソース、2ch総力を出してうんたらかんたら
0787デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/06(木) 18:41:39.02ID:GY1MFs1Dd
予定はないはずだが糞林檎のことだからしれってxcodeからobjcを消すだろうな
0788デフォルトの名無しさん (ドコグロ MMa8-xaNP)2016/10/06(木) 19:24:02.05ID:dbRxNNhMM
林檎ならありえるな
0789デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/06(木) 19:25:53.04ID:6nlxRpPjd
バカなの?は余計だった

>>787
まあObjective-Cなくす方向なのは明らかだな
ところで、どーでもいいけどxaNPはどうせ2ch mate使いなんだろうけど、Sdf8まで被るのは珍しいな
もしかして近くにいたのかと思うとちょっとやだw
0790デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/06(木) 19:43:30.29ID:5Myi1vl0p
swift使ってないヤツは糞だのごり押しだのと言い
swift使ってるヤツは微妙と思いながらswift,objcを併用

ジョブズ(ObjC)信者とアップルアンチが、敵の敵は味方で一緒にswiftを叩いてる?
居もしない敵(Swift信者)を相手に仲いいなw

>>776
CのAPI(ABI)が同コンパイラから吐かれてるなら可能
普通にC APIとして叩くコード書いて、ライブラリをリンクすればいいよ
0791デフォルトの名無しさん (ワッチョイ c3f8-sTX3)2016/10/06(木) 22:47:41.37ID:Ppn//x8R0
え、obj-c消えるの?

osx持ってるからサンプルいくつか見たことあるけど
変態文法すぎて嫌厭してたが・・・

せっかく覚えた人ほんと可哀想だわ
0792デフォルトの名無しさん (ワッチョイ 50c9-+EyG)2016/10/06(木) 23:05:03.20ID:dHiEitkY0
どんな言語でも習得すればプログラマとしての視野が広がって確実にレベルアップのファンファーレが聞こえる
字面で敬遠とかアホらしい
0793デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/06(木) 23:10:05.36ID:i8b5nErV0
Haskellやってろ
0794デフォルトの名無しさん (ワッチョイ ab89-pu+C)2016/10/06(木) 23:20:35.32ID:AWdbtBN70
http://techtarget.itmedia.co.jp/tt/news/1610/06/news03.html
Appleの開発言語「Swift」にBluemixが対応、iOSアプリ開発に変化は?
0795デフォルトの名無しさん (ワッチョイ 50c9-/Z78)2016/10/07(金) 01:09:20.92ID:r/YXYLZp0
>>780
ググルの中の人の話ではあり得なくはないらしい。javaは評決出たけどゴタゴタしてるし。
とはいえ色々やっては何にも世に出さずに無くなるものも多いので変な期待は禁物。
0796デフォルトの名無しさん (ワッチョイ 353c-+EyG)2016/10/07(金) 01:25:40.76ID:rJ3dWlRe0
Swift .NETが出てからが本番だと思う
アップルのマイナープラットフォームでしか動かないうちは
現れては消える泡沫言語のひとつに過ぎん
0797デフォルトの名無しさん (スプッッ Sdbd-xaNP)2016/10/07(金) 08:05:27.92ID:HkTZrMeMd
ないないw
swiftのメリットなんてなんもないw
0798デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/07(金) 08:10:35.87ID:jkBtorTQp
>>791みたいに、からかいがいがあるだろ
swiftスレでobjcをけなすと、なぜか沢山のレスが釣れる
0799デフォルトの名無しさん (ワッチョイ 0162-xaNP)2016/10/07(金) 08:58:57.51ID:nixpl/Qv0
Swiftがけなされても爆釣
0800デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/07(金) 09:37:36.81ID:jkBtorTQp
>>799
糞、ごり押しの二択で笑わてるんや
0801デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/07(金) 09:40:01.83ID:jkBtorTQp
>>796
cygwin portは終わったルルオ
msvc portはまだですかねぇ、、、
0802デフォルトの名無しさん (スプッッ Sdbd-xaNP)2016/10/07(金) 10:04:58.10ID:HkTZrMeMd
今さら新言語作るなら他の真似っこじゃなくてもっと革新を起こさないとねえ
技術のない糞林檎には到底無理だろうけど
0803デフォルトの名無しさん (ワッチョイ 6b3c-jLml)2016/10/07(金) 15:12:22.18ID:TtCSZtxr0
objc が無くなるとか思ってる奴は無知過ぎるし推論能力が低過ぎる。
objc が捨てられるのは Cocoa が捨てられる時だ。その時は Swift も一緒にポイだ。
0804デフォルトの名無しさん (オッペケ Sr4d-/Z78)2016/10/07(金) 16:00:32.85ID:7FaeqrGnr
>>803
へー(鼻ホジホジ
0805デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/07(金) 16:26:28.06ID:jkBtorTQp
objcがけなせるなら馬鹿でいいという煽り魂を見た
CarbonからCocoaに載せ変えたの知らんの?くらい返せよ
昔居たswift信者は頑張ってたぞ

実際はlibobjcがlibc並みの依存度だから無茶な話よのう
0806デフォルトの名無しさん (ワッチョイ 50c9-+EyG)2016/10/07(金) 16:31:19.95ID:48NAy5YH0
3でFoundationをSwiftに馴染むようにした
4はCocoaその他FWをSwift流に馴染ませるだろう
5あたりでApple内製コードの完全Swift移行が発表され
6ぐらいでWWDCでジョブズがObjCの葬式をやるだろう
0807デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/07(金) 18:31:11.53ID:kc+mhg/Sd
馴染ませてからリリースしろよ
甚だ迷惑だ
0808デフォルトの名無しさん (ササクッテロ Sp4d-pu+C)2016/10/07(金) 19:33:33.62ID:VoumAhXNp
Swift7まで待つか
0809デフォルトの名無しさん (ワッチョイ 353c-+EyG)2016/10/07(金) 22:33:16.22ID:rJ3dWlRe0
Objective-Cバカにしてる奴がいるけど、
今Swift界隈をリードしてる連中は
Objective-Cをずっと触ってきた奴らだぞ・・・
Swiftが出てから触り始めて、
そいつらより出来るようになってから
Objective-Cをバカにしような
0810デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/07(金) 23:19:53.45ID:RcypuJv40
ロートル言語の経験なんてマニュアル車に乗れます程度の意味しかない
オートマの方がもはや性能はいい
0811デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/07(金) 23:48:47.67ID:KSX4f2lwp
小さな()ランタイムの容量、単純な演算の速度性能、1,2年で型落ちするコード、、、
性能良いトコどこだろうね

モダンな文法が唯一のメリットだと思ってるけど
それが性能には繋がってないよなぁ
0812デフォルトの名無しさん (ワッチョイ fc42-lsIp)2016/10/08(土) 00:56:05.50ID:5XiE+va+0
コードコンバーターのおかげで
毎年違った文法が楽しめる
0813デフォルトの名無しさん (ワッチョイ fcba-xaNP)2016/10/08(土) 01:51:22.43ID:mrzADUl/0
糞過ぎワロタ
コンバータかけたら動かなくなったwww
0814デフォルトの名無しさん (ワッチョイ 21c9-LkUe)2016/10/08(土) 13:12:19.43ID:RMZHGp4O0
swiftでWin32API叩けるんかな
0815デフォルトの名無しさん (ワッチョイ 353c-pu+C)2016/10/08(土) 14:11:25.37ID:7aqZN51I0
Swiftの美しい文法を使ってWin32APIをディスることはできるよ
0816デフォルトの名無しさん (ワッチョイ 0162-xaNP)2016/10/08(土) 15:24:42.23ID:641FMjtr0
モダン()な言語Swift()
0817デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/08(土) 15:59:46.28ID:W8fQDBNNd
俺は文法的にObjectiveCの
[レシーバ メッセージ]
ってのが好き。
0818デフォルトの名無しさん (ワッチョイ fcba-xaNP)2016/10/08(土) 16:04:59.44ID:mrzADUl/0
ないわ
0819デフォルトの名無しさん (ワッチョイ fc42-lsIp)2016/10/08(土) 16:12:43.95ID:5XiE+va+0
ないな
0820デフォルトの名無しさん (ワッチョイ 50c9-+EyG)2016/10/08(土) 17:08:23.66ID:sBY/+BPX0
いつかのWWDCで閉じブラケットで開きブラケットを補完するようになったぜ!でイベント一番の大歓声にはさすがに苦笑したわ
0821デフォルトの名無しさん (ワッチョイ 0162-xaNP)2016/10/08(土) 17:32:51.56ID:641FMjtr0
>>817
いいよねあれ
最初は変態的に感じたけど、今では関数と明確に文法が違うからむしろわかりやすい
0822デフォルトの名無しさん (エムゾネ FFa8-LkUe)2016/10/08(土) 17:42:08.62ID:GxOhc35MF
見た目ちがうだけで関数と一緒
0823デフォルトの名無しさん (ワッチョイ 0162-xaNP)2016/10/08(土) 17:46:30.59ID:641FMjtr0
うーん…。
0824デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/08(土) 18:16:48.35ID:Xvmy/9XEp
>>822
その文法の違いに意味がある
ぼくがかんがえたさいきょうのオブジェクト指向言語ObjC
ぼくがかんがえたさいきょうのモダン文法言語Swift

どっちを使うかは信仰/好み次第だな
0825デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/08(土) 18:32:15.27ID:W8fQDBNNd
>>821
ありがとう。
0826デフォルトの名無しさん (ササクッテロ Sp4d-+EyG)2016/10/08(土) 20:00:44.47ID:DmU6w/1lp
そんなもん叩いてどないすんねん
0827デフォルトの名無しさん (ワッチョイ c3f8-sTX3)2016/10/08(土) 23:20:09.59ID:8jtl4rj10
オラクルとグーグルで訴訟問題になってたんだけど
結局androidではswift採用する方向性なのかな?
0828デフォルトの名無しさん (ワッチョイ fcba-xaNP)2016/10/09(日) 00:22:27.26ID:OEMyrOCK0
>>827
ただの噂だろ
0829デフォルトの名無しさん (ワッチョイ 50c9-/Z78)2016/10/09(日) 01:41:40.50ID:V3oRZ0il0
>>821
単に慣れただけだろ。
common lispやforth系のfactorはもっとおもしれーぞ
0830デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/09(日) 01:44:08.88ID:vn4ejBxV0
メッセージ式は確かにlispに近いよね
ネストしまくるところとかも
0831デフォルトの名無しさん (ワッチョイ 50c9-/Z78)2016/10/09(日) 01:45:57.36ID:V3oRZ0il0
>>827
swiftもっと安定するまでそれはねーよ

まぁibmもswiftプッシュしてるからswiftの開発もどんどん進むだろうけど
0832デフォルトの名無しさん (ワッチョイ 8317-pu+C)2016/10/09(日) 04:18:42.46ID:m0tgxIyd0
梯子を外されるまで登り続けるのが信者だろ
迷わず使え
0833デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/09(日) 14:41:03.14ID:P0MK6PKop
>>831
IBM巻き込んだせいで梯子外せなくなってそう
梯子の下でからかい8割で使ってるけど、どうするんだろうね
0834デフォルトの名無しさん (ワッチョイ be93-pu+C)2016/10/10(月) 07:54:14.72ID:7dPzTHPx0
>>822
メソッド(メッセージ)と関数の区別が付かないのはc++の悪影響
0835デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/10(月) 08:01:29.17ID:ilIcthsLp
[オブジェクト プロパティ] (旧文法
オブジェクト.プロパティ (新文法

.で区切るのはクソって昔は言ってたけど
今はいずれも素晴らしいって絶賛するだろ?
要は教祖様が発表するならなんだって良かった
swiftは教祖様が発表出来なかった時点で終わった
0836デフォルトの名無しさん (ワッチョイ 014e-+EyG)2016/10/10(月) 08:19:33.24ID:m8N9lC0h0
1. obj.method()
2. method(obj)
3. [obj method]
0837デフォルトの名無しさん (ワッチョイ 353c-+EyG)2016/10/10(月) 11:59:24.48ID:ojTfyZxF0
せっかくアンチスレあるんだから、ネガティブな話しかしないならそっちでやれよ
0838デフォルトの名無しさん (ワッチョイ 353c-xaNP)2016/10/10(月) 12:16:29.77ID:+h2uA/KW0
>>834
C++やSwiftには、メソッドは無く関数だけ。

>>835
ドット記方は糞
0839デフォルトの名無しさん (ワッチョイ 018f-+EyG)2016/10/10(月) 12:20:17.30ID:o/bfuqaw0
>>834
コレってほとんどの言語が全滅じゃないか?
0840デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/10(月) 12:24:36.77ID:JBZYyZMk0
>>837
ポジティブな話題出してもいいんだぜ?
Swiftのポジティブな話題ってどこでも見ないけどな
太鼓持ちすら、文字列操作クソって話題で盛り上がってるほどだし
0841デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/10(月) 12:52:15.05ID:3TTXM9TH0
結局Swiftに変えないといけない逼迫した合理的技術的理由がない
つまり今の流れはただのAppleのゴリ押しということになる
0842デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/10(月) 13:05:13.02ID:JBZYyZMk0
5年後、10年後を考えたとき、教育向け言語としてObjective-Cは古過ぎる
Appleはそこのポジションをとりに行きたいという意味では合理的な判断
アプリ開発者が今の中途半端なSwiftを使うのはアホ
0843デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/10(月) 13:08:09.45ID:E67RH2w9p
文字列操作はクソなりに仕様が落ち着いたからまだ良いと思うんだけどな
落ち着いた後は使いこなせないアホが悪い、のゴリ押しで良い

ObjCはARCだからメモリ管理不要
=> weak refは?
=> 使いこなせないのはアホ
と同じ話
0844デフォルトの名無しさん (ワッチョイ 018f-+EyG)2016/10/10(月) 13:30:59.85ID:o/bfuqaw0
それよりswiftの未来の話をしようぜ。
ARCから進化を進めるという意図もあるのかrustのメモリ管理機構を取り込むらしいけどコレってなんなの?
コンパイル時点でメモリリークを防げるような仕組みっぽいけど
コンパイルエラーを読み解くのが大変らしい。
でも静的にメモリリークを防げるならARCのオーバヘッドもなくなるってことだよね
0845デフォルトの名無しさん (ワッチョイ fcba-xaNP)2016/10/10(月) 13:44:10.71ID:5tAzPSZS0
objcなんていう糞林檎臭い言語に比べればマシだな
0846デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/10(月) 13:52:33.36ID:E67RH2w9p
取り込むことを「検討」な
コンパイル時にクッソ強烈にメモリリークの静的検証して
実行時にnilアクセスで落とせなくする

ARC, オプショナルと競合するわけじゃないから不可能じゃないけど
早くてSwift6くらいなら取り込めるんじゃないかな

それより先にgoroutineをパクってくれよな
0847デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/10(月) 13:54:00.89ID:E67RH2w9p
あ、ARCと併用だろうから、オーバーヘッドは多分なくならんぞ
0848デフォルトの名無しさん (エムゾネ FFa8-LkUe)2016/10/10(月) 16:23:30.66ID:Q436H0RNF
>>835
[[[オブジェクト プロパティ] プロパティ] プロパティ]
オブジェクト.プロパティ.プロパティ.プロパティ

どうみてもドットの方が便利
0849デフォルトの名無しさん (ワッチョイ fcba-xaNP)2016/10/10(月) 16:27:47.47ID:5tAzPSZS0
>>848
禿同
0850デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/10(月) 16:30:22.17ID:uUKHL6dI0
[[obj hoge] fuga:a
       piyo:b]
わかりやすい

obj.hoge().fuga(fugaarg:a, piyo:b)
気持ち悪い
0851デフォルトの名無しさん (ワッチョイ 014e-+EyG)2016/10/10(月) 16:37:43.88ID:m8N9lC0h0
>>850
途中の()いらんだろ本来。無いほうがいい
それよかクロージャの理想の構文はどんなものか議論しよう
0852デフォルトの名無しさん (エムゾネ FFa8-LkUe)2016/10/10(月) 16:46:11.12ID:Q436H0RNF
>途中の()いらん
これは些細などうでもいいこと

そんなことより
obj.hoge.fuga({fuga:a, piyo:b})
obj.hoge.fuga(a, piyo=b)
で充分だろ
0853デフォルトの名無しさん (ワッチョイ 014e-+EyG)2016/10/10(月) 16:48:57.65ID:m8N9lC0h0
その第一引数だけラベル省略化だっけ? なんだかなと思うけど
命名によってはしょうがねえのかな
0854デフォルトの名無しさん (ワッチョイ 014e-+EyG)2016/10/10(月) 16:54:05.45ID:m8N9lC0h0
math.sin(x) であって
math.sin(x:x) ではないもんな
0855デフォルトの名無しさん (ワッチョイ 50c9-+EyG)2016/10/10(月) 17:05:43.28ID:SPVYbf620
その辺の話ホゲだのハゲだので語ってもナンセンスすぎるだろ
もっと具体的なケースで語れよハゲ
0856デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/10(月) 17:22:33.10ID:uUKHL6dI0
apple.manse { [weak self] _ in
self.jobs.death
}

こういうコードほんとクソ
0857デフォルトの名無しさん (ガラプー KKc2-8aGu)2016/10/10(月) 17:40:48.91ID:+vjmYDwJK
>>850
obj.hoge(fuga:a, piyo:b)
でいいんじゃないの?
0858デフォルトの名無しさん (ワッチョイ 8317-pu+C)2016/10/10(月) 17:47:28.81ID:BxH5DKSa0
>>840
willSetとdidSetは便利だと思う
0859デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/10(月) 18:45:01.29ID:E67RH2w9p
[fuga hogeWithHage:hage]だからWithHage省略でfuga.hoge(hage)なのよな
最近のObjC Framework APIは[fuga hogeWith:hage]だっけか
別にハゲハゲ言ってもいいけどさ

>>858
乱用してたらコードが見辛くなった(自業自得である
変数宣言と処理は適度に分けた方が良いよな
0860デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/10(月) 19:35:58.97ID:3TTXM9TH0
メソッド呼び出しがまるで文章を書くように記述できるのはObjCらしいな
0861デフォルトの名無しさん (ワッチョイ 5c42-xaNP)2016/10/10(月) 20:11:46.19ID:+uFkYUPk0
>>850
もうschemeに転向しちゃいなよ
0862デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/10(月) 20:20:06.43ID:NZ/vw+Ezd
>>848
それは、糞なCに侵されているからだよ。
0863デフォルトの名無しさん (ワッチョイ 5c42-xaNP)2016/10/10(月) 20:23:04.47ID:+uFkYUPk0
objc否定しちゃったよ…
0864デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/10(月) 20:25:51.18ID:3TTXM9TH0
CじゃなくてJavaとかC#の系譜だろドット多用は
0865デフォルトの名無しさん (スッップ Sda8-xaNP)2016/10/10(月) 20:38:56.37ID:d4iShsP4d
ObjCがキモいとか言ってるやつはLispもしらないにわかプログラマだけだろ
0866デフォルトの名無しさん (ワッチョイ fcba-xaNP)2016/10/10(月) 20:50:04.18ID:5tAzPSZS0
Lipsww
0867デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/10(月) 20:54:38.04ID:3TTXM9TH0
Oops!
いやここは Opps! かww
0868デフォルトの名無しさん (ワッチョイ da93-pu+C)2016/10/10(月) 20:55:50.64ID:WZBlx5zp0
VideoToolboxやCoreMediaとかCoreAudioとか全くSwiftyなAPI用意する気がないAPIはある意味清々しいな。
ベタベタにポインタとかオブジェクト扱うのは全然Swiftで書いてる気がしない。
0869デフォルトの名無しさん (ワッチョイ b119-xo8R)2016/10/10(月) 20:58:00.04ID:VSCdHl4u0
>>864
これは一周回って新しい
あとlispあげてるニワカはobjcスレ行ってsmalltalk起源だってアホ扱いされてくれば良いと思う

willSet, didSetはいい加減ObjCにもバックポートしてくれれば良いのにな
なんか問題あるのかねぇ、単純に面倒なだけかもしれんが
0870デフォルトの名無しさん (ワッチョイ be93-pu+C)2016/10/10(月) 20:58:03.34ID:7dPzTHPx0
>>835
コンセプトが違う言語で記法だけ比較しても意味なくね?

Objective-CはCをできるだけそのままでクラスとメッセージパッシングを追加した言語だし

Swiftはプロトコルベースに向かって行くみたいだし



APLみたいに行列演算子が無いからC#はクソとか言わないでしょ?
0871デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/10(月) 21:50:42.59ID:U2TFA8Md0
>>857
[obj hogeWithfuga: a
       piyopiyo: b,
         poyo: c]
引数が縦に揃っている、分かりやすい

obj.hoge(fuga: a,
  piyopiyo: b,
  poyo: c)
右側がガタガタで、崩れた字形は醜い
これにメソッドチェーンや末尾クロージャが追加されると悲惨
0872デフォルトの名無しさん (ワッチョイ 50c9-+EyG)2016/10/10(月) 21:53:44.87ID:SPVYbf620
コード整形とかてめぇでスクリプトでも書きゃええだけやろ
まったく本質的でない
0873デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/10(月) 21:57:51.41ID:U2TFA8Md0
>>872
obj.hoge(a, b, c)
本当はこれでよかった

本質的な問題は、obj-cの引数ルールを中途半端に背負ってるクソ言語って点
obj-cはまだ見やすい、Swiftはどうしようもないクソ
0874デフォルトの名無しさん (ワッチョイ 014e-+EyG)2016/10/10(月) 22:13:50.41ID:m8N9lC0h0
ラベルは有った方がいいよ。
コードレビューしててわかんねえから。
0875デフォルトの名無しさん (ワッチョイ f90c-VEo6)2016/10/10(月) 22:21:45.76ID:8wA3lnrn0
同感、ラベルは素晴らしいわ。

例えば、javascriptのdocumentのgetElementById、getElementByNameはメソッド名で頑張ってるけど、
最初の引数しか説明できないしな。(この例は引数1個だから説得力ないけど)
0876デフォルトの名無しさん (スップ Sdf8-xaNP)2016/10/10(月) 22:28:48.66ID:5BEQ/PHPd
>>873
そう書けるけどな
external parameter nameなんていらんわ。おれは使わん
0877デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/10(月) 22:39:44.61ID:U2TFA8Md0
>>874
レビューするときビルドと動作確認のために一回pullするでしょ?
そしたらXcodeで定義見れるから問題にならないはずだがなぁ
github上で斜め読みしかしないなら、それはしょうがねえなって感じだけど

>>875
型のないJavaScriptと比較してもな
Swiftの場合、引数に厳密な型という情報があるから、変数名以上の説明がいるのだとしたら、
メソッドが引数を取りすぎているか、変数名が雑なのかどっちかじゃないか
0878デフォルトの名無しさん (スップ Sdf8-xaNP)2016/10/10(月) 23:20:12.53ID:5BEQ/PHPd
毎回互換壊すのもどうかと思うがそれ抜きにすればswiftはいい言語だよ
objcアレルギー持ってる人多いからな
問題はfoundationの中途半端さ
0879デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/11(火) 00:11:48.04ID:cHyeE8akp
objc以外にアレルギー持ってる子も多いけどな

ライブラリはもうobjc製でいいんじゃないかな、、、
Apple OS以外でも、と思ってSwift版作ってるんだろうけどきっついわ
0880デフォルトの名無しさん (スププ Sda8-pu+C)2016/10/11(火) 09:58:05.17ID:dx68DP/+d
心配すんなって
日本の現場の多くはオブジェクト指向プログラミングそのものににアレルギーがあるから
あと、テンプレートにも関数型プログラミングにも

オブジェクト指向対応の言語を使って、手続き的プログラミングやるのが主流
それで「○○言語使ってオプジェクト指向で開発やってます」と上に報告すれば丸く収まる

だからオブジェクト指向とかその他の手続き的以外の考え方が強制される言語やライブラリはけっこう嫌がられる
0881デフォルトの名無しさん (スップ Sdf8-xaNP)2016/10/11(火) 10:47:57.36ID:4b7+P37Hd
>>880
そんな老害はそろそろ死滅するので論外
0882デフォルトの名無しさん (スププ Sda8-pu+C)2016/10/11(火) 11:32:51.42ID:dx68DP/+d
>>881
そう願おう

だがこのスレで関数呼び出しとメソッドを同一視するような書き込みを見るとちと心配

ま、分かっててネタで書いてるんだろうけどさ
0883デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/11(火) 11:49:20.25ID:cHyeE8akp
心配すんなって
「○○言語使って手続き型で開発やってます」と言えば丸く収まる

関数型、プロトコル指向ときて、Swiftでは今はなにが流行り?
0884デフォルトの名無しさん (ワッチョイ 353c-+EyG)2016/10/11(火) 12:00:11.16ID:CxXhfkt70
>>882
関数とメソッドの違いとかswiftだとどうでもよくね?
全部 func で定義すんだし
こまけーことは気にすんなよってことだよ
0885デフォルトの名無しさん (スプッッ Sdf8-xaNP)2016/10/11(火) 12:23:41.05ID:1BgokK/ad
定義と宣言の違いが解らない奴がいる。
0886デフォルトの名無しさん (ワッチョイ 353c-+EyG)2016/10/11(火) 13:38:11.85ID:CxXhfkt70
>>885
swiftの場合、ヘッダー使わねーし、(クロージャーやらプロトタイプなどは除いて)ほとんど定義しか使わねーだろ
こまけーことばかり気にしてるとハゲるぞ
0887デフォルトの名無しさん (スプッッ Sdbd-xaNP)2016/10/11(火) 14:28:18.33ID:/8qX9ui1d
それこそどうでもいい
0888デフォルトの名無しさん (ワッチョイ 21c9-LkUe)2016/10/11(火) 14:42:53.41ID:QeFd4z390
>>865
LispもSmalltalkも知ってるが(((())))とか
Node.jsとかの{{{{}}}}は好きになれない
Erlangの方がイケてる
0889デフォルトの名無しさん (ワッチョイ 353c-KXO7)2016/10/11(火) 15:40:10.57ID:liGtqrRj0
1さん・・・
0890デフォルトの名無しさん (ササクッテロ Sp4d-pu+C)2016/10/11(火) 18:59:54.89ID:Wmxdwu+kp
[] の方がシュッとして優しい感じになる
() は曖昧な感じ
{} は攻撃的
0891デフォルトの名無しさん (ワッチョイ 50c9-+EyG)2016/10/11(火) 21:29:42.26ID:cObrH7jL0
<>は?
0892デフォルトの名無しさん (ササクッテロ Sp4d-pu+C)2016/10/11(火) 21:39:14.53ID:Wmxdwu+kp
<>はデブってて、シュッとしてない
やっぱ[]が最高だよなー
0893デフォルトの名無しさん (ワッチョイ 50c9-/Z78)2016/10/12(水) 00:03:40.47ID:XtwtJP1B0
んじゃ、M式でいいな。
0894デフォルトの名無しさん (ワッチョイ 8366-pu+C)2016/10/12(水) 01:04:28.61ID:6wjTUIH10
Obj-Cの[]で「ここが他のクラスにこういう処理を頼んでるところだ」が浮き上がってるのが特徴的で愛用者は気に入ってるのに
"Objective-C without C"を謳ったswiftは、どこの馬の骨が来たのか知らんけど、またコードの中に変数と混在させて埋めようぜーに退化してるんだもの。
"Objective-C without Objective-C"なんて、また新しいC++じゃねーか!っつか。
0895デフォルトの名無しさん (スッップ Sda8-xaNP)2016/10/12(水) 01:20:07.13ID:V9J+GeVed
>>894
ほんそれ
変えればいいってもんじゃないん

だが株主やユーザーに対してとにかく新しい感を出したいAppleにとって
言語変更プロジェクトはゴリ押してでも成し得なければならない計画なのだよ
だからAppleの下僕どもはそれに従うまでだ

わかったか下僕ども、うはははは
0896デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/12(水) 11:22:48.67ID:37alkvp4p
Swiftアンチスレ part1 [無断転載禁止]©2ch.net
ttp://echo.2ch.net/test/read.cgi/tech/1458491343/
0897デフォルトの名無しさん (スプッッ Sdbd-xaNP)2016/10/12(水) 12:36:05.20ID:av1qGTEWd
どう考えてもobjcなんていう僕の考えた理想のオブジェクト指向言語よりswiftのほうがいい、
0898デフォルトの名無しさん (ササクッテロ Sp4d-pu+C)2016/10/12(水) 13:14:09.28ID:4sAZDm+Zp
objcは理想のオブジェクト指向じゃなくて、最低限のオブジェクト指向だと思うが
0899デフォルトの名無しさん (ワッチョイ 21a5-LkUe)2016/10/12(水) 13:21:14.38ID:CGbCriuU0
>>894
それな

一目で判るって大事だよね
0900デフォルトの名無しさん (スップ Sda8-xaNP)2016/10/12(水) 14:10:43.66ID:6aYwnRIxd
一目でわからないほうがアホなだけ
0901デフォルトの名無しさん (スプッッ Sdbd-pu+C)2016/10/12(水) 16:35:17.52ID:tZGrKuF8d
>>894
C++よりはまだswiftの方が好感が持てるかな?


C++は偏執狂かと思うほどに自らに変化し続けることを強要している言語
俺C++は相当勉強してきたつもりだけどテンプレートメタプログラミング辺りで脱落した

クラスベースのオブジェクト指向プログラミングが落ち着く前に
テンプレートとSTLが導入され
次はモダン記法だ型推論だ
その挙句テンプレートメタプログラミングだと!

いや、やってみたいんだけどさ、メタプログラミング
手を出すなともう一人の自分が言っている
0902デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/12(水) 16:49:21.18ID:37alkvp4p
C++をオブジェクト指向文法()でラップしたObjC
ObjCをモダン文法()でラップしたSwift

C++が出来るなら遊びでも続けてた方が良いよ
ObjCもSwiftも機能の根本はC++に依存してるもの
0903デフォルトの名無しさん (ワッチョイ 50c9-+EyG)2016/10/12(水) 17:10:30.50ID:v2hbQAGX0
名前変えずに文法とバージョン番号だけ変えるから文句言われる
いっそ毎年別名の別言語としてリリースしたらいい
0904デフォルトの名無しさん (ワッチョイ 3066-pu+C)2016/10/12(水) 17:40:43.30ID:wxvUm7uc0
>>902
Objective-Cを知らないで書いてるでしょ、君。
Obj-CはCから直接派生のC++と同時期に作られた言語だからC++を一切経由していない。
逆にあまりに方向が違うからC++の文法をラップして組み込めたので
Objective-C++という変態仕様のバリエーションでC++のコードも移植可能にしてある。
普通はObjective-Cで間に合うから++はゲーム系の人が移植で使うぐらい。

メッセージの考え方は有効だったので、Javaがメソッドという名前でObjective-Cから考え方を継承し、一般化した。
0905デフォルトの名無しさん (ササクッテロ Sp4d-xaNP)2016/10/12(水) 17:45:54.03ID:37alkvp4p
フフってなった
いつのObjCアーキテクチャだよw
0906デフォルトの名無しさん (ワッチョイ 353c-KXO7)2016/10/12(水) 18:14:14.23ID:Q1QtHVSr0
Javaが影響受けたのはSmalltalkとC++だろ・・・
0907デフォルトの名無しさん (ワッチョイ 014e-+EyG)2016/10/12(水) 18:52:39.97ID:cZV01oaX0
>ObjCもSwiftも機能の根本はC++に依存してるもの
これは間違い。blocksのソースはC。ARCはclangがコンパイル時にretain/releaseを挿入してるだけ。
0908デフォルトの名無しさん (エムゾネ FFa8-LkUe)2016/10/12(水) 18:57:18.68ID:bqn+ql9dF
>>901
たしかにオブジェクト指向とテンプレートは無関係だよな
0909デフォルトの名無しさん (エムゾネ FFa8-LkUe)2016/10/12(水) 18:59:07.28ID:bqn+ql9dF
>Javaがメソッドという名前でObjective-Cから考え方を継承し

えっObjective-Cからパクったのか?
うそだろ?
0910デフォルトの名無しさん (スップ Sda8-xaNP)2016/10/12(水) 20:29:00.33ID:6aYwnRIxd
つまりswift最強
0911デフォルトの名無しさん (JP 0Hf8-lsIp)2016/10/12(水) 20:57:23.76ID:w1HDVBtiH
Swift簡単すぎて、うちの会社雇わないよ
Obj-C++使いこなせないと役に立たないし
0912デフォルトの名無しさん (スップ Sda8-xaNP)2016/10/12(水) 20:58:59.54ID:6aYwnRIxd
おまえの糞会社なんて行かないから問題無
0913デフォルトの名無しさん (ワッチョイ 353c-+EyG)2016/10/12(水) 21:49:42.95ID:egHr26eU0
Swiftは簡単すぎて、エンジニアとしてのスキルが身につかないのが問題だよね
C++でもCOBOLでもいいけど、一度難解な言語を経験した方が基礎体力はつくと思う
0914デフォルトの名無しさん (ワッチョイ f942-lsIp)2016/10/12(水) 21:57:59.78ID:oYkyBdYu0
>>913
C言語ができたとき誰かが同じことを言ったそうな
0915デフォルトの名無しさん (ワッチョイ 50c9-+EyG)2016/10/12(水) 22:11:14.61ID:v2hbQAGX0
老害の論理やな
俺が若い頃した苦労を今の若いやつもするべき、みたいな

てか、スキル身につかないとしたらそれSwiftの問題じゃなくてそいつ個人の問題だし
0916デフォルトの名無しさん (スップ Sda8-xaNP)2016/10/12(水) 22:36:28.26ID:6aYwnRIxd
>>913
老害乙
0917デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/12(水) 23:05:00.53ID:Ho77NI7R0
>>902
>C++をオブジェクト指向文法()でラップしたObjC
的外れすぎてクソワロタw
なぜObjective-Cという名前なのか考えたほうがいい
というか少しでもObjective-Cを触ったことがあるならその名前の意味がわかるだろう
0918デフォルトの名無しさん (アウアウ Sac5-xaNP)2016/10/12(水) 23:05:07.28ID:HG5E5ZFha
>>909
嘘ではない。
しかしそれが真実だったということを一部の裏事情を知るものにしかわからない。
0919デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/12(水) 23:08:50.68ID:Ho77NI7R0
その昔本流のCocoa(Objective-C)と並行してCocoa-Javaというものが
存在した時期があったがそのあたりとなんか関係あったりするのか?
0920デフォルトの名無しさん (ワッチョイ be93-pu+C)2016/10/12(水) 23:11:19.70ID:oiw5Xn4j0
ここら辺のswiftとは無関係な議論を通じて分かったことは


おまいらおっさんだろ!

それが分かっちゃう俺もだがな
0921デフォルトの名無しさん (ワッチョイ 353c-lsIp)2016/10/12(水) 23:19:26.90ID:nbwBB2870
>>919
あれはAppleが落ちぶれまくってて、Sunの資本を受けてたから
0922デフォルトの名無しさん (スッップ Sda8-xaNP)2016/10/12(水) 23:20:43.48ID:7xsW2cC6d
>>919
Cocoa-Java懐かしいな
考えてみれば今で言うSwiftだな
0923デフォルトの名無しさん (スッップ Sda8-xaNP)2016/10/12(水) 23:28:58.74ID:7xsW2cC6d
>>917
どーでもいいけど、関数とメソッドが共存してる言語はObjective-C以外にないよな、たぶん
0924デフォルトの名無しさん (ワッチョイ 0162-+EyG)2016/10/12(水) 23:50:28.78ID:Ho77NI7R0
>>920
まあ否定はしないw
というかSwiftやってる人もほとんどは今も昔もObjective-Cでやってる人じゃないのかね
中にはSwiftから始めた人もいるだろうけど
Cocoa-Javaは確かJaguarのころ自分も含めObjective-Cとかいう謎言語よりはだいぶハードルが低く感じ、最初はCocoa-Javaで始めたな
すぐにObjective-Cも表記が見慣れないだけで実はたいしたことないことに気づいてから使わなくなったけど

>>921
そういう背景があったのか、なるほど
今となっては資本を提供する側だからな
時代も変わったもんだ

>>923
C++も一応C言語的な関数とメンバ関数は両方あるな
ただ、Objective-Cほど純粋なCにオブジェクト指向を足した言語はないだろうな

まあぼちぼちスレチ宣言されそうだからこの辺にしとくけど
0925デフォルトの名無しさん (ワッチョイ cf93-DI90)2016/10/13(木) 06:57:11.62ID:uLi1zjjv0
>>924
俺はSwiftが出来たからiOSアプリに手を出した派

Objective-CはNS系ライプラリの使い方を調べる時にサンプルとして読む程度
[]に戸惑ったがメッセージ送ってるんだと理解できればあとはどうにかなった
0926デフォルトの名無しさん (ササクッテロ Spd7-DI90)2016/10/13(木) 07:15:56.31ID:TArPTXtxp
>>918
C++側のオブジェクト指向の説明が「"戦え"関数を構造体に与えると〜」みたいになってて
プログラマに使い方についてわけのわからん理解しかされてなかったのを、メッセージ使うオブジェクト指向側からJavaは
「"戦え"ってメソッド(命令)を与えると中で槍で/剣で/弓でって書き換えられるでしょ」って概念的に明確にしてスッキリさせた。
メッセージ送信型はsmalltalk>Objective-Cの流れ。
0927デフォルトの名無しさん (スップ Sdcf-Oa01)2016/10/13(木) 08:09:36.48ID:GEWcYK9zd
つまり現在swift最強ってことだな
0928デフォルトの名無しさん (ワッチョイ 3b62-Oa01)2016/10/13(木) 08:17:12.28ID:5gkYrLUa0
>>927
ちょっと何言ってっかわかんないっすね
0929デフォルトの名無しさん (アウアウ Sab7-GZGd)2016/10/13(木) 08:40:34.57ID:YiooIUIra
>>918
> 一部の裏事情を知るものにしかわからない

変に濁さずに、ちゃんとここらへんを出しておけよ…^^;

Java Was Strongly Influenced by Objective-C ...and not C++...
http://cs.gmu.edu/~sean/stuff/java-objc.html
0930デフォルトの名無しさん (ワッチョイ 23c9-3ZZL)2016/10/13(木) 10:58:24.70ID:a7epO2oP0
>>918
ソース出せ
0931デフォルトの名無しさん (ササクッテロ Spd7-DI90)2016/10/13(木) 11:29:21.97ID:cU2wQHszp
開発中のObjective-Cがひどすぎて、これはやばいと思ったやつらが作ったのがJavaじゃなかったっけ?
0932デフォルトの名無しさん (アウアウ Sab7-GZGd)2016/10/13(木) 11:48:46.35ID:YiooIUIra
逆だろ
友達がいじっているObj-Cがクールだったから開発中のJavaにその一部を取り込んだ
JavaのインターフェイスはObj-Cのプロトコルのパクリだし、ラッパークラスのアイデアとかもしかり

もっともメソッドがObj-Cから…に限っては、ゴスリングがSmalltalkユーザーだったことを鑑みるとウソっぽいけどな
0933デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/13(木) 13:17:11.42ID:RR+V09XRp
ObjCが酷すぎて、これはやばいと思った奴等が作ったのがSwift?
0934デフォルトの名無しさん (スプッッ Sdcf-Oa01)2016/10/13(木) 13:39:42.52ID:DYt3sDddd
というかクリスが勝手にswift作っててそれをappleが正式に採用したんじゃね
ーの
0935デフォルトの名無しさん (ワッチョイ 4b3b-Dtor)2016/10/13(木) 13:52:05.31ID:z124Tb2m0
つーことは、AppleがObjCひどすぎと判断したのか
一方で、ジョブズ信者はObjCマンセー、Swiftシネと言う

Appleが新しいものだす => ジョブズならこんなもの許さなかった言う
Appleが今のままでいる => ジョブズなら新しいもの出していたと言う
手詰まりすぎワロタ
0936デフォルトの名無しさん (スプッッ Sdcf-Oa01)2016/10/13(木) 16:03:39.23ID:DYt3sDddd
ヘッダファイルなんてものが無くなるだけでも開発効率あがる
0937デフォルトの名無しさん (スフッ Sd4f-DI90)2016/10/13(木) 18:47:05.10ID:T+HRsfySd
>>936
激同
0938デフォルトの名無しさん (ワッチョイ 7353-JbT4)2016/10/13(木) 19:43:09.57ID:Xiz88gcA0
まあ10年選手だからねObjCは
そろそろ次の10年を担う選手起用してもいい頃だろ
0939デフォルトの名無しさん (ササクッテロ Spd7-DI90)2016/10/13(木) 21:26:25.74ID:cU2wQHszp
>>936
開発の効率は上がるけど改修の工数は上がる
ちゃんとプロトコル切って外部とのインターフェースを公開すればカッチリするけど、
ヘッダファイル書くのとあんま変わらない
0940デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/13(木) 21:56:25.08ID:fjl9TWpjp
あんま変わらないなら、ヘッダ書かない分効率上がってね?
(ビルド時にヘッダファイル相当を自動生成するからビルド時間増えてることは度外視)
0941デフォルトの名無しさん (ワッチョイ cf93-DI90)2016/10/13(木) 22:14:49.28ID:uLi1zjjv0
ビルド時間は気にならないな
やはり保守性と可読性
0942デフォルトの名無しさん (ワッチョイ 8b3c-x3Zw)2016/10/13(木) 22:29:16.08ID:9U2MzkPG0
ゲーム開発とかだとビルド時間を1秒でも削ることが大事になってくるんで
precompiled headerとかでインクルードをコントロールできないSwiftは論外
0943デフォルトの名無しさん (スッップ Sd4f-Oa01)2016/10/13(木) 22:30:05.71ID:N9M8W3SZd
可読性悪いとは思わんけどなObjC
0944デフォルトの名無しさん (ササクッテロ Spd7-Dtor)2016/10/13(木) 22:32:16.91ID:DnZBByaEp
まぁpublicなクラス、メソッドをポコポコ変えるアホがSwiftコードを設計するとメンテ工数は上がるかなぁ
そういうコード書くアホはObjC .hでもポコポコ I/F変えそうだけど
Swiftが言語仕様で安全にしたいっつーなら、public I/Fが変わったらワーニング出させると良いかもな
0945デフォルトの名無しさん (ササクッテロ Spd7-DI90)2016/10/14(金) 08:31:54.81ID:pupvpI7Kp
open
Public
Fileprivate

センスなさすぎ
0946デフォルトの名無しさん (スフッ Sd4f-DI90)2016/10/14(金) 08:52:57.14ID:HctOuMWqd
>>942
キチンとコンパイル単位を分割しろよ
そもそもswiftだとプリコンパイルヘッダとか無関係だし
0947デフォルトの名無しさん (スフッ Sd4f-DI90)2016/10/14(金) 08:54:52.68ID:HctOuMWqd
privateがあんまりプライベートじゃないのは俺も不満だな
0948デフォルトの名無しさん (スップ Sdcf-Oa01)2016/10/14(金) 10:50:45.71ID:X0K3bG+Kd
>>942
www
0949デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/14(金) 11:13:12.95ID:tWIyn9WFp
>>946
プレコンパイルヘッダがなくてビルド時間が今より体感2倍以上かかってたswift1.xさんをディスってんじゃねーよ
人が書く必要はないけどヘッダファイルは必要だったんやなって
0950デフォルトの名無しさん (スプッッ Sdcf-Oa01)2016/10/14(金) 12:29:01.43ID:4PfJqVead
1の激遅時代から見ると大分早くなったから気にならなくなってきたな
ビルド時間短縮のために型推論捨てることになるのは想定外だったが
0951デフォルトの名無しさん (スフッ Sd4f-DI90)2016/10/14(金) 12:32:41.75ID:HctOuMWqd
すまんswift2からの新参者なので

しかし、コンパイラが中間処理で吐き出すものは「ヘッダファイルが要る」とは言わんだろう
0952デフォルトの名無しさん (ワッチョイ 57c9-310H)2016/10/14(金) 20:55:06.45ID:odBYaAF/0
次のswiftはいつ頃かなぁ。
次のバージョンでもソースレベルの互換性は維持されないんだろうか?
0953デフォルトの名無しさん (スプッッ Sd4f-Oa01)2016/10/14(金) 20:57:40.90ID:vtWHaBQVd
3からされるって話じゃなかったっけ?
0954デフォルトの名無しさん (ワッチョイ efd4-2yk0)2016/10/14(金) 23:18:00.55ID:6VstsZYU0
>>950
えっ!マジで?
0955デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/15(土) 07:05:34.58ID:rMPiWrgcp
3と4は互換させたいと言ってるな
互換するとは言ってないし、4と5については何も言ってない

3でABI安定させたい => 出来ませんでした、サーセン
くらいに信頼するのはアホよな
0956デフォルトの名無しさん (ササクッテロ Spd7-DI90)2016/10/15(土) 10:40:25.14ID:pklOHUiWp
ちょっと入り組んだ型推論入れるだけで目に見えてコンパイル時間延びるし、
複雑すぎる推論だとコンパイルエラーになるし
これについてはほんとクソ
0957デフォルトの名無しさん (ワッチョイ 3b62-x3Zw)2016/10/15(土) 11:03:12.41ID:+A+P8NXM0
Swiftなんなんだよまじで
迷走しすぎで勉強する気が起きない
0958デフォルトの名無しさん (スッップ Sd4f-Oa01)2016/10/15(土) 11:19:03.63ID:iEfxtDHHd
同じこと思った人も多いと思うけど、
Objective-Cを始めてみた時に感じた以上のキモさを感じるなSwiftは
0959デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/15(土) 13:09:45.06ID:rMPiWrgcp
JSとかKotlin知らないとキモってなるのは分かる
それらの言語から文法パクってるから知ってるとそうでもないと思う
0960デフォルトの名無しさん (ワッチョイ eb3c-DI90)2016/10/15(土) 18:07:02.39ID:aiJiWNBI0
URLSessionDataTaskでUIを更新する時は別スレッドで処理するけど、Core Dataへの保存は別スレッドにする必要ある?
0961デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/15(土) 20:41:56.93ID:rMPiWrgcp
エラーは出さないけど軽くフリーズする(可能性)はあるんじゃね
データ量が小さいなら別に構わんだろうけども
0962デフォルトの名無しさん (ワッチョイ 9b9a-x3Zw)2016/10/17(月) 00:45:50.95ID:aaDO0EvI0
いい方向に向かってんだからいいじゃん。

不満あるならOSSなんだから自分でコミットすれば?
0963デフォルトの名無しさん (ワッチョイ 7353-JbT4)2016/10/17(月) 13:39:39.09ID:sCgnC7z50
海外の奴らはもうXcode8.1の準備してるな
フットワーク早いわ
0964デフォルトの名無しさん (ワッチョイ 9b9a-x3Zw)2016/10/17(月) 21:54:31.50ID:aaDO0EvI0
AlamofireもiOS8切ったので、開発者側にiOS8切るプレッシャーが効いてアプデしないユーザーをアグレッシブに切ってく流れができるのがとてもよい。
0965デフォルトの名無しさん (ワッチョイ 8b3c-8qPS)2016/10/17(月) 21:55:47.61ID:DOm6h5BZ0
AlamofireはAppleのせいでiOS8を泣く泣く切ったらキレるユーザーが大量にわいて、
そろそろiOS自体切るかどうか検討しているみたいだな
0966デフォルトの名無しさん (ワッチョイ 6fd1-rRFK)2016/10/17(月) 22:53:49.90ID:OntDjDpN0
Nil Coalescing Operator の挙動がよくわからんのでおせぇて。

# 右辺が Optional型 → 戻り値も Optional
> print(String?(
0967デフォルトの名無しさん (ワッチョイ 57c9-x3Zw)2016/10/17(月) 22:55:27.81ID:gagBOE+30
>>965
iOS切ったら何が残んの
0968デフォルトの名無しさん (ワッチョイ 6fd1-rRFK)2016/10/17(月) 22:57:34.40ID:OntDjDpN0
なんか変になったので、再度投稿

Nil Coalescing Operator の挙動がよくわからんのでおせぇて。

# 右辺が Optional型 → 戻り値も Optional
> print(String?(�Whoge�W) ?? String?(�Wfuga�W))
Optional(�Whoge�W)

# 右辺が String型 → 戻り値も String型
> print(String?(�Whoge�W) ?? �Wfuga�W)
hoge

こんな感じで ?? の右辺で指定する型によって戻り値の型も変わるみたいなんですが、なんで?


ちなみにバージョンは

$ swift -v
Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)
Target: x86_64-apple-macosx10.9
0969デフォルトの名無しさん (ワッチョイ 9b9a-x3Zw)2016/10/18(火) 00:46:22.03ID:zt0pttDM0
(正直こういう質問は2chよりも質問に向いた質問サイトいっぱいあるしStackOverflowとかでいいじゃんって思う派。
とにかく読みづらい。邪魔。
このスレは匿名でSwiftについて語ったらええやん。)

>>968
?? の意味わかってないね
?? は「左辺がnilなら右辺使います」それだけだよ
0970デフォルトの名無しさん (ワッチョイ 9b9a-x3Zw)2016/10/18(火) 00:49:28.47ID:zt0pttDM0
>>965
ホントかよ?iOSだけ切ってMacだけ対応とかありえないでしょ
0971デフォルトの名無しさん (ワッチョイ 2389-DI90)2016/10/18(火) 04:43:31.74ID:pfxaYmEQ0
すみません、ここんとここのスレウォッチしてたiOSデベロッパーを目指してるものなんですが、Swiftを勉強するのは時期尚早でしょうか。
Objective-C勉強した方が、まだまだよい状況でしょうか。

というのは、Swiftがあまりにも酷評されてるので気になりまして。
よろしければ、アドバイス下さい。
0972デフォルトの名無しさん (ワッチョイ 9b9a-DYJB)2016/10/18(火) 05:37:56.57ID:zt0pttDM0
2ちゃんねる自体、根暗人間の匿名掲示板なのでどうしてもネガティヴな意見しか集まらない。
(優秀なエンジニアは実は2ちゃんねるとかあんま見てない。)

2ちゃんねるの外側の一般世間では結構評価されてると思います。

普通にいい言語だと思います。
高級言語です。モダン。
0973デフォルトの名無しさん (ワッチョイ 9b9a-DYJB)2016/10/18(火) 05:39:17.63ID:zt0pttDM0
いまiOSはじめるとしてObjective-Cからはじめるのは飛んだ捻くれ者だよ。2ちゃんねらーの鑑
0974デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/18(火) 06:34:55.83ID:SXv995XWp
swift使ってるけど、swift使うためにobjcの基礎知識が必要なこと多いから
素直にobjcを学んでからswift始めた方が良いと思ってる
0975デフォルトの名無しさん (ワッチョイ cf93-DI90)2016/10/18(火) 07:56:09.84ID:Xpii0Omk0
>>971
ここは2chだからな
酷評されるというのは、評判がいいということだ

本当に評判が悪いと話題にも出ない
0976デフォルトの名無しさん (スプッッ Sd57-Oa01)2016/10/18(火) 08:02:30.47ID:RN0uapNjd
>>971
そりゃケースバイケースだよ
新規アプリ作るなら一部の糞以外基本swift使う
昔のアプリのエンハンスするには当然objcが必要
おまえに何が必要かだ
0977デフォルトの名無しさん (ワッチョイ 2389-DI90)2016/10/18(火) 08:08:30.84ID:pfxaYmEQ0
>>971 です。みなさんお返事ありがとうございます。
>>974さんの意見よくわかります。
Swiftだけで完結してないっていうか、ちょいちょいObjective-Cの知識が入ってくるので、Swiftのすっきりしないところを感じていました。

Objective-C勉強してからSwift始めようと思います。
0978デフォルトの名無しさん (ワッチョイ 3b62-x3Zw)2016/10/18(火) 08:11:13.11ID:1q9pof5O0
>>972
>>973
こういうゴリ押す奴いるけど何なんだろうね
0979デフォルトの名無しさん (スプッッ Sd57-Oa01)2016/10/18(火) 08:13:47.47ID:RN0uapNjd
>>978
闇雲にobjc勉強しろだなんてただの老害だしなあ
0980デフォルトの名無しさん (ワッチョイ 3b62-x3Zw)2016/10/18(火) 08:21:22.35ID:1q9pof5O0
二言目には老害という言葉を発するのも特徴
0981デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/18(火) 08:33:20.29ID:SXv995XWp
objc貶されると必死だなw
これは老害ですわ
0982デフォルトの名無しさん (ワッチョイ 3b4e-x3Zw)2016/10/18(火) 08:39:48.48ID:j9lDw9lO0
Obj-Cを勉強というより、アプリの構造とデザインパターンだよな。
その習得にObj-Cの知識が必要かSwiftだけでも良いかってことだと思う。
0983デフォルトの名無しさん (スプッッ Sd57-Oa01)2016/10/18(火) 08:45:00.30ID:RN0uapNjd
>>981
ですねw
0984デフォルトの名無しさん (スッップ Sd4f-Oa01)2016/10/18(火) 08:59:54.94ID:aFusVnxsd
Swift貶されて必死だし、Objective-C貶されて必死だし、どっちもどっちだわ
0985デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/18(火) 09:05:57.05ID:SXv995XWp
モダン()なデザインパターン学ぶならモダン()なSwiftが適す
関数型だのプロトコル指向だのバズワードを追いたいならお薦めできる
0986デフォルトの名無しさん (ワッチョイ 4f32-tRHD)2016/10/18(火) 11:13:16.15ID:SenGDNdm0
どっちもやってみればいい
0987デフォルトの名無しさん (ワッチョイ 8b3c-/6Y/)2016/10/18(火) 11:36:40.45ID:oLo879ze0
次スレ
http://echo.2ch.net/test/read.cgi/tech/1476758084/
0988デフォルトの名無しさん (ワッチョイ 8b3c-/6Y/)2016/10/18(火) 11:43:57.15ID:oLo879ze0
知ってるならいいけどこっちのスレもある

Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/
0989デフォルトの名無しさん (スフッ Sd4f-DI90)2016/10/18(火) 18:24:24.62ID:XNeT8UDOd
>>977
俺は>>982と同意見だな

勉強すべきはオブジェクト指向でよく使われる手法と
デザインパターンと
各ライブラリのコンセプト(こういう風に使って欲しい)
だと思う

Objective-Cは[]が出てきたらオブジェクトにメッセージを送っている
(意訳:変数のメンバ関数を呼び出してる)
という事さえ知っていればどうにかなる

システムライブラリの例題がObjective-Cというのが良くあるので少し読む必要がある
0990デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/18(火) 18:43:44.98ID:hz2rypiBp
要はCocoaもUIKitもまだObjCにべったりなフレームワークとIFデザインだから
ObjCでデザインパターン学んでからSwiftでおk?

どっちの言語?って聞いてるのに微妙に的外して結論がなくて笑うわ
0991デフォルトの名無しさん (スップ Sdcf-Oa01)2016/10/18(火) 19:19:17.58ID:nd0z2LLHd
>>990
本当に必要になるまでswiftのみでOK
0992デフォルトの名無しさん (ブーイモ MM4f-DI90)2016/10/18(火) 20:02:13.12ID:zSfWaXMBM
うーむ、自分ついつい普通にNSObject継承してばっかりだなぁ。
Cocoa bindingとかCFObjectとかガンガン使うし。

Swiftの仕様が安定するまで、この方が楽と思うんだが。
0993デフォルトの名無しさん (ワッチョイ cf93-DI90)2016/10/18(火) 20:55:49.86ID:Xpii0Omk0
>>990
swiftだよ、って言いたかった

nsライブラリの説明&サンプルでつまづく所は大抵Objective-Cそのものではなくて
ライブラリの設計思想

だからSwiftを始めるためにObjective-Cやるのはちょっとずれてる
0994デフォルトの名無しさん (ワッチョイ cf93-DI90)2016/10/18(火) 20:58:28.35ID:Xpii0Omk0
>>992
それでいいんじゃない?
Swiftってそういうものだと思う。
0995デフォルトの名無しさん (ササクッテロ Spd7-DI90)2016/10/18(火) 22:40:14.36ID:liPtXnj4p
委託にしろ社内案件にしろ抱えてるアプリが多ければSwiftはコスパ悪い
0996デフォルトの名無しさん (スプッッ Sdcf-Oa01)2016/10/19(水) 07:58:30.50ID:dprVW7hZd
それはないわ
0997デフォルトの名無しさん (エムゾネ FF4f-Oa01)2016/10/19(水) 09:12:07.90ID:GSclPizOF
えっ?
0998デフォルトの名無しさん (ササクッテロ Spd7-Oa01)2016/10/19(水) 18:42:13.45ID:gznMDzIgp
えっ?(お約束
0999デフォルトの名無しさん (ワッチョイ 5d4b-vevC)2016/10/23(日) 10:59:15.07ID:Zfm3qzSU0
梅
1000デフォルトの名無しさん (スプッッ Sd39-YT5Q)2016/10/23(日) 11:11:02.36ID:l/iDXb3dd
青梅
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 162日 11時間 40分 56秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。