Swift part8 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (アウアウ Saaf-caug)
2016/05/13(金) 23:30:06.87ID:MRCJQvHca関連スレ
プログラミング言語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
0053デフォルトの名無しさん (ササクッテロ Sp7f-khAS)
2016/05/26(木) 15:34:43.77ID:N5pCo2ZOpswiftまでなら遊べるけどrealm含めて遊ぶ気にはならないから見送りー
0054デフォルトの名無しさん (アウアウ Saff-8nLm)
2016/05/26(木) 15:51:14.55ID:Y4QJzltGa0055デフォルトの名無しさん (ワッチョイ b37b-8nLm)
2016/05/26(木) 16:45:54.29ID:Uz9XmlMN0CoreDataって冗長なコードが多いしあまり直感的に使えない。
MagicalRecordでラップして使うという手もあるだろうけど、
そこまでするくらいならRealmの方がコード量も少なく済むし
アクセスも高速だし、直感的なコードだし という理由。
0056デフォルトの名無しさん (ワッチョイ e318-SNRC)
2016/05/26(木) 20:04:06.71ID:NreTHedY00057デフォルトの名無しさん (ワッチョイ 7b3c-Iguy)
2016/05/26(木) 20:09:50.17ID:HNHWlvNI0いいえ
0058デフォルトの名無しさん (オイコラミネオ MMff-Iguy)
2016/05/26(木) 20:42:41.19ID:2qm/1yJ6M0059デフォルトの名無しさん (ワッチョイ e318-SNRC)
2016/05/26(木) 21:46:59.55ID:NreTHedY0ありがとう
勉強頑張るわ
0060デフォルトの名無しさん (ワッチョイ 07c9-Kzgd)
2016/05/27(金) 11:48:10.98ID:UB68Nja80本質的なところではそんなに変わらないけど字面はかなり変わる
0061デフォルトの名無しさん (ワッチョイ 133c-SNRC)
2016/05/27(金) 21:27:17.95ID:7jUk8cRg0Xcodeにはやくリファクタリングツール付けてくれないかな
0062デフォルトの名無しさん (ワッチョイ ef93-SNRC)
2016/05/29(日) 18:00:00.42ID:+QQL0piv0自分でメソッド作る時も
0063デフォルトの名無しさん (ワッチョイ d742-SNRC)
2016/05/30(月) 23:58:23.49ID:KJkS+pjw0ベストプラクティスある?
0064デフォルトの名無しさん (ワッチョイ 133c-kHkB)
2016/05/31(火) 00:05:48.21ID:LpgiaEue0return
}
print("\(value)_\(value2)")
0065デフォルトの名無しさん (ワッチョイ d742-SNRC)
2016/05/31(火) 01:46:33.05ID:RCb3Xr940おおこんな書き方が!
0066デフォルトの名無しさん (オイコラミネオ MMff-SNRC)
2016/05/31(火) 18:28:56.57ID:DJZE5i1qMMake無しの方使っとけばいい?
0067デフォルトの名無しさん (ワッチョイ e3c9-Wqch)
2016/05/31(火) 18:40:40.10ID:yIUZknFd00068デフォルトの名無しさん (ワッチョイ 07c9-HpYT)
2016/05/31(火) 18:46:10.05ID:s2aN7j8c00069デフォルトの名無しさん (ワッチョイ d742-SNRC)
2016/05/31(火) 18:57:14.56ID:RCb3Xr940hogeMethod(a, :b)みたいに省略できないのかな
0070デフォルトの名無しさん (ワッチョイ 7b3c-Iguy)
2016/05/31(火) 18:57:35.16ID:Uyu8CUZY0WAKEだよ!
すげー!
0071デフォルトの名無しさん (ワッチョイ 9b17-SNRC)
2016/05/31(火) 22:58:07.14ID:43sFGgYH0自分で定義するメソッドなら順番を固定してラベルを省略する方法がなかったっけ?なかったらごめん
0072デフォルトの名無しさん (ワッチョイ 133c-kHkB)
2016/05/31(火) 23:11:48.01ID:LpgiaEue0同じ型でオーバーロードできなくなるけど
0073デフォルトの名無しさん (ワッチョイ 07c9-HpYT)
2016/06/01(水) 01:11:37.07ID:omPFj0uv0確かに変数名を真面目につければつけるほど引数ラベル名と被るジレンマよくある
0074デフォルトの名無しさん (ワッチョイ 133c-HpYT)
2016/06/01(水) 17:56:16.68ID:bUMaKpp30class 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例がイマイチだったのでわかりづらかったのかもですが、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厳密に言うとどうなの?
Xcodeに従っとけばいい?
0078デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)
2016/06/02(木) 17:49:36.51ID:qFtmyDSFM0079デフォルトの名無しさん (ワッチョイ 213c-2WQj)
2016/06/02(木) 19:48:20.11ID:9+Vh9Y6K0例をコードで示してくれるか、警告内容書いてくれないと…
さすがに仕事以外でエスパーするの辛い。
0080デフォルトの名無しさん (ワッチョイ 213c-qC5Z)
2016/06/02(木) 20:31:32.74ID:O50w6Y0Q0使わないのに無駄に関数内で定数設定してるから注意されてるんだよ
あとvarで変数宣言したのに変化させなかったらletで宣言しろって言われる
メモリの無駄遣い防止機能かな
でも宣言した瞬間に邪魔なところに注意文出るからイラッとくる
文字色反転くらいでいい
0081デフォルトの名無しさん (ワッチョイ 9e93-4qA/)
2016/06/02(木) 21:01:20.97ID:xqPUilla0これの65行目です。
今Peek and Popを調査中でしてf^_^;
0082デフォルトの名無しさん (ワッチョイ 213c-qC5Z)
2016/06/02(木) 21:32:05.41ID:O50w6Y0Q0何これ?意味わかんない
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:tHwJhWU8aobjectという引数をobjectというローカル変数へアンラップしてるってことだし
まぁ、可読性という意味ではあれだが
objectは下の方でちゃんと使われてるだろ
まぁ、頑張れ、ふくやましんご君
0084デフォルトの名無しさん (ワッチョイ 9e93-4qA/)
2016/06/02(木) 21:59:29.18ID:xqPUilla0見落としでしたが、時々オプショナルバインディングで警告が出るので質問しました。
返答していただきありがとうございました
あとふくやましんごさんは赤の他人ですので
0085デフォルトの名無しさん (ワッチョイ 213c-qC5Z)
2016/06/02(木) 22:16:03.42ID:O50w6Y0Q0guard let _object = object else {
return
}
こっちだわ。
ちなみにこの_objectも後ろで
_object.removeObserver(self, forKeyPath: "state")
書くまで注意される。理由は>>80
てか本人だったんか、、何かごめんな。
0086デフォルトの名無しさん (ワッチョイ 213c-qC5Z)
2016/06/02(木) 22:17:39.98ID:O50w6Y0Q0やっぱり他人やったんかい!
0087デフォルトの名無しさん (ワッチョイ 213c-ChPp)
2016/06/02(木) 23:14:42.95ID:dR7AiF6z0case .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:VvE0bkkHa0089デフォルトの名無しさん (ササクッテロ Sp89-ud2d)
2016/06/03(金) 01:04:51.42ID:TXwUryARpswift玄人様チーッス
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+0ObjCのクラスを自動的にラッパーして直してないから、ポインタがオプショナルになってるだけでしょ?と思ってる。
自分なら、このケースの場合、if let object は外して↓だけで済ます。
object?.removeObserver(self, forKeyPath: "state")
>>82
外人とかのコード見てもアンラップするだけで、変数名変えるのはあんまり見かけないな。
0093デフォルトの名無しさん (ササクッテロ Sp89-4qA/)
2016/06/03(金) 18:27:35.42ID:iR+TeNRGpお前がSwiftプロだ
0094デフォルトの名無しさん (ササクッテロ Sp89-D6vv)
2016/06/04(土) 15:34:17.98ID:cE2uZEbNp2.xでも一応機構はあるっぽいけど便利コマンドが追加されるだけで構成は同じだといいなぁ
誰かXcodeを使わないSwift開発のノウハウ持っててPackage管理してる人がいたら、互換性(見込み)について教えてくれぃ
0095デフォルトの名無しさん (ササクッテロ Sp89-D6vv)
2016/06/04(土) 20:10:44.84ID:ets/dnaap2.xにon Linuxでも扱えるnamespaceはないかもしれん
誰かエロい人教えて、、、
0096デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)
2016/06/08(水) 17:06:31.54ID:QDb2Bi8hMfor item in array {
// 処理
}
このスタイルで書きたいのですが、いい案ありますでしょうか?
0097デフォルトの名無しさん (アウアウ Sa76-rI5i)
2016/06/08(水) 17:12:21.98ID:FiJoHGXCa0098デフォルトの名無しさん (ブーイモ MMb8-ud2d)
2016/06/08(水) 17:43:25.79ID:IzbVLKR1Menumerateを使う。
filter使うべきって人もいるかもしれない。
0099デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)
2016/06/08(水) 17:46:06.21ID:QDb2Bi8hMありがとうございます。
考えてみます!
世界のナベアツだったら3の倍数で処理するだろw
0100デフォルトの名無しさん (ワッチョイ 213c-1mS6)
2016/06/08(水) 18:51:27.84ID:HG8HbZIy0かな?
0101デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)
2016/06/08(水) 18:52:30.23ID:QDb2Bi8hM参考になります
0102デフォルトの名無しさん (ワッチョイ e0c9-rI5i)
2016/06/08(水) 19:02:44.73ID:4PrKHMPD0>index / 3 > 0
なんでやねん
0103デフォルトの名無しさん (ワッチョイ 213c-1mS6)
2016/06/08(水) 19:56:11.04ID:HG8HbZIy0あれ違った?ボケてるかも
0104デフォルトの名無しさん (ワッチョイ 213c-1mS6)
2016/06/08(水) 19:57:46.26ID:HG8HbZIy00105デフォルトの名無しさん (アウアウ Saff-2+vS)
2016/06/10(金) 20:50:53.96ID:dDF5pFSwahttps://www.infoq.com/jp/news/2016/06/swift-3-no-stable-abi
0106デフォルトの名無しさん (ワッチョイ 8b3c-1atY)
2016/06/10(金) 21:34:49.53ID:Icj8uFk90納期に間に合わないなら仕方ないよねぇ。
さすがに後々問題になる可能性があるなら時間かけてでも検討、排除してほしいわ。
0107デフォルトの名無しさん (ササクッテロ Spd7-jNGR)
2016/06/10(金) 21:39:16.58ID:ZdUNqcUFpワロタ
swiftの中ですらABI安定してないのに、objcまで頑張ろうとしたら、そりゃ無理だわw
0108デフォルトの名無しさん (アウアウ Sa3f-1atY)
2016/06/10(金) 22:28:35.24ID:Ibo6Xp9La0109デフォルトの名無しさん (ワッチョイ eb7b-1atY)
2016/06/10(金) 23:10:00.51ID:xyNxE4XD0APIが変わってもABIは互換性は維持するって可能なものなんだ。
APIとABIって一対一対応なのかと
0110デフォルトの名無しさん (アウアウ Sa97-oU5x)
2016/06/11(土) 01:55:06.60ID:QumDJQ98a時代はC#
WWDC二次会が楽しみだわ
0111デフォルトの名無しさん (アウアウ Sa3f-1atY)
2016/06/11(土) 02:06:01.12ID:XA6DLEjFaクソ重い.NET無いと動かねぇーし
0112デフォルトの名無しさん (ワッチョイ ef3c-jNGR)
2016/06/11(土) 03:04:26.27ID:HBWP+BM70え!?w
0113デフォルトの名無しさん (ワッチョイ 0742-jNGR)
2016/06/11(土) 03:38:53.11ID:+qdbIGEA0ABIって例えば関数呼び出す時のレジスタどうするかとかスタックどうするかとかいった話だろ。
普通はAPI関係ない。
0114デフォルトの名無しさん (ササクッテロ Spd7-jNGR)
2016/06/11(土) 07:44:10.16ID:ienu9sBbp>>111
処理性能の足を引っ張ってる小さな(笑)ランタイムがないと動かないSwiftディスってんじゃねーよwww
0115デフォルトの名無しさん (ワッチョイ 8b3c-1atY)
2016/06/11(土) 10:06:59.69ID:FWlFwO2K0iOSアプリ開発すんのにUnityとかいちいち起動してらんねーんだよ。
XcodeでC#使えるようになったら考えてもいい。
つーか、別に言語なんて糞じゃなけりゃなんでもいいわ。
今考えるとSwift1.x系はそこそこ糞だったな。
0116デフォルトの名無しさん (アウアウ Sa3f-1atY)
2016/06/11(土) 10:35:44.87ID:iL4iXZRCa参照カウント式メモリ管理に慣れた今ガベコレとか耐えられない
0117デフォルトの名無しさん (ササクッテロ Spd7-jNGR)
2016/06/11(土) 11:47:20.38ID:K3zUElr6p言語、ランタイムに合わせて使いこなすか、使えないなら近寄らないべきだろ
0118デフォルトの名無しさん (スプー Sdcf-jNGR)
2016/06/11(土) 11:51:07.38ID:BuQwEvTrdガベコレのほうがよっぽど初心者向け仕様だろ
0119デフォルトの名無しさん (ワッチョイ 233c-VqNH)
2016/06/11(土) 16:33:32.90ID:lGk3iJgb00120デフォルトの名無しさん (アウアウ Sa3f-1atY)
2016/06/11(土) 17:12:30.02ID:tY1WxmQFaそれなりのメリットが必要だわな
iOSオンリーな俺にわざわざXamarinを使うメリットはないのだよ
0121デフォルトの名無しさん (ササクッテロ Spd7-2ckR)
2016/06/11(土) 22:58:00.28ID:g/rGqFOCp参照カウント, 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:eRqP7x9gaCoacoaPodsもarthageもAppleからしてみればサードパーティが勝手に提供してるツールでそこの互換性を気にする義理はないわな
0123デフォルトの名無しさん (ワッチョイ 8b3c-7xHu)
2016/06/12(日) 00:11:53.55ID:S4cPSCPd0使えるものを使わず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:8yjejgOaa0126デフォルトの名無しさん (ササクッテロ Spd7-zoFs)
2016/06/14(火) 01:22:51.47ID:7FWxp3bzpSwift++とか来年すぐに出てくるぞ
0127デフォルトの名無しさん (アウアウ Sa3f-1atY)
2016/06/14(火) 01:37:55.95ID:TmMOv/QAa0128デフォルトの名無しさん (アウアウ Sa3f-zoFs)
2016/06/14(火) 01:47:48.70ID:8yjejgOaa0129デフォルトの名無しさん (ワッチョイ a33c-AHtr)
2016/06/14(火) 03:09:06.48ID:tPi5OMXi00130デフォルトの名無しさん (ワッチョイ 3b66-oU5x)
2016/06/14(火) 05:04:52.84ID:9VHKttIj0プログラムの勉強にはいいんだがswiftの方が
学んで後々使えるぐらい仕様安定するのか…
0131デフォルトの名無しさん (ワッチョイ ef93-oU5x)
2016/06/14(火) 05:18:15.59ID:F+5+ukCP00132デフォルトの名無しさん (ワッチョイ 9b8b-jNGR)
2016/06/14(火) 07:54:06.23ID:o0HgXHCE0そんな心配しなくてもSwiftはすぐ消えるから
0133デフォルトの名無しさん (ササクッテロ Spd7-jNGR)
2016/06/14(火) 08:22:29.77ID:GA68fGvrp随分前からswiftppは出てる
0134デフォルトの名無しさん (アウアウ Sa3f-zoFs)
2016/06/15(水) 01:58:24.67ID:HOkjGBqoa0135デフォルトの名無しさん (ワッチョイ a33c-AHtr)
2016/06/15(水) 02:04:03.71ID:JQG8N//+00136デフォルトの名無しさん (ワッチョイ 57c9-1atY)
2016/06/15(水) 03:04:06.18ID:AKfbMiRN00137デフォルトの名無しさん (ササクッテロ Spd7-jNGR)
2016/06/15(水) 08:04:43.58ID:t8WJCWqDpしかし、逆ブレが強すぎてSwift風味に少食気味になるわ
0138デフォルトの名無しさん (ササクッテロ Spd7-FUCW)
2016/06/15(水) 13:30:26.42ID:t8WJCWqDpNSプレフィクスをコンパイラが付けるから要らなくなるってことかと思ったら
Foundation.swiftとかでNSプレフィクスなしの構造体が再定義されてるのな
道理でNSプレフィクスが要るものと、要らないものと混在するわけだ
< NSプレフィクスを全撤去したらビルドエラーが出た
0139デフォルトの名無しさん (アウアウ Sa3f-1atY)
2016/06/15(水) 14:02:58.21ID:wNwSdVKma0140デフォルトの名無しさん (ササクッテロ Spd7-jNGR)
2016/06/15(水) 14:24:43.12ID:t8WJCWqDp取り合えず、構造体が単なるラッパーなら性能がまた落ちるからやめて欲しい
NSつけたらエラー/ワーニング出るけど
0141デフォルトの名無しさん (ワッチョイ fc42-o3Bz)
2016/06/16(木) 00:24:12.15ID:b32tR6DT0NeXT にコンプレックスがある奴が引っ掻き回しているとしか思えない。
0142デフォルトの名無しさん (ワッチョイ d98b-qS7w)
2016/06/16(木) 00:55:04.77ID:N2kyoOQs0くそだわ
最近のアップルはホントに小手先の変わった感で誤魔化すことしか考えてない
0143デフォルトの名無しさん (ワッチョイ fc42-ntlg)
2016/06/16(木) 01:11:41.34ID:5OteNi9t0まだまだ不便だけど
0144デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)
2016/06/16(木) 01:12:59.62ID:MpHMwtX90Swift先生が値型セマンティクスのあるべき姿に正してくれたんやで
0145デフォルトの名無しさん (ワッチョイ 8b3c-77//)
2016/06/16(木) 01:14:19.64ID:lHelW+jt00146デフォルトの名無しさん (ワッチョイ 8317-ntlg)
2016/06/16(木) 01:38:25.49ID:a4ODjedr0そういやObjective-CだとimmutableはスレッドセーフでmutableはスレッドアンセーフだけどSwiftはそのへんどうなってるの?
0147デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)
2016/06/16(木) 01:49:47.87ID:xvtNBgrWpobj-cもバックポートしてジェネリクスやnilable追加してる
冷遇されてないやん
0148デフォルトの名無しさん (アウアウ Sa3e-o3Bz)
2016/06/16(木) 02:03:18.81ID:h5j7M7Fta0149デフォルトの名無しさん (ササクッテロ Sp4d-MYuK)
2016/06/16(木) 08:27:02.43ID:Rn5Y9zAqp0150デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)
2016/06/16(木) 08:27:55.28ID:qIs25kXxpDateFormatterはclassだし、一貫性がないんだが
0151デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)
2016/06/16(木) 08:31:59.04ID:xvtNBgrWp一見で分からないと実用が辛いと切実に思いはする
0152デフォルトの名無しさん (アウアウ Sa3e-MYuK)
2016/06/16(木) 08:32:39.70ID:YJ4WCJk5aクソアプリ作り直すの面倒なんだが
■ このスレッドは過去ログ倉庫に格納されています