Swift part3
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/07/23(水) 11:46:48.42ID:x29J8vdYApple Developer
https://developer.apple.com/swift/
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Swift Standard Library Reference
https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/
Swift Blog
https://developer.apple.com/swift/blog/
Resources (Xcode 6が無料でダウンロードできる)
https://developer.apple.com/swift/resources/
関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/
帰ってきた動的言語 VS 静的言語(代表Swift)
http://peace.2ch.net/test/read.cgi/tech/1401809550/
前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
Swift part2
http://peace.2ch.net/test/read.cgi/tech/1402465335/
0541デフォルトの名無しさん
2014/09/20(土) 17:34:27.82ID:9dCg0hW5UIGestureRecognizerのアクションメソッドの引数はUIGestureRecognizer自身(UIGestureRecognizerインスタンス)ということをふまえて、
アクションメソッドとその引数だけでなら、UITapGestureRecognizerのサブクラスにpropertyでも付ければ?
0542デフォルトの名無しさん
2014/09/20(土) 17:36:44.96ID:9dCg0hW50543デフォルトの名無しさん
2014/09/20(土) 17:51:15.59ID:NCF0ZY1+let button = sender.view as UIButton
let title = button.titleForState(.Normal)
println(title)
}
で出来ました!こんなのでハマって情けない、、
0544デフォルトの名無しさん
2014/09/20(土) 23:33:55.21ID:NCF0ZY1+ガン無視してて失礼しました^^;
GestureRecognizer自体もクラスだから拡張できたんですね!
勉強になりました。
0545デフォルトの名無しさん
2014/09/21(日) 03:53:15.94ID:GzQqKC/g0546デフォルトの名無しさん
2014/09/21(日) 04:33:15.25ID:yNiC5P3R気持ちは分らんでもないが落ち着けw
swiftから始めたからobj-cがAAにしか見えなくて、でもそこからしか学べない時に俺も発狂しそうになる。
0547デフォルトの名無しさん
2014/09/23(火) 18:06:36.66ID:WbhbMyFJ例えばデータをダウンロードする関数で成功したらNSDataにダウンロードしたデータを入れて返すとして
ダウンロード失敗の場合nilを返すのと NSData() を返すのでは後者の方がいい?
できるだけnilを使わない書き方が望ましいのかな?
0548デフォルトの名無しさん
2014/09/23(火) 18:10:15.81ID:mQWNKtDe0549デフォルトの名無しさん
2014/09/23(火) 18:23:54.25ID:8wJhmQ2U失敗することがあるならOptionalでしょ。
失敗したときに空のNSData返されたら、失敗したかどうか判断しにくい。
返された非nilのデータをNSData()と比較で判断とか、まぬけな感じ。
絶対に失敗しないなら非Optional。
失敗することがあるならOptionalで、場合によっては引数にNSErrorPointer。
Objective-C考慮しなくていいなら、返り値とエラーをTupleにしてもいいかも?
もちろん、成功をBoolを返す関数とかだと、話は変わってくる。
0550デフォルトの名無しさん
2014/09/23(火) 18:45:40.20ID:WbhbMyFJ0551デフォルトの名無しさん
2014/09/25(木) 13:08:06.32ID:eOyq17q/0552デフォルトの名無しさん
2014/09/25(木) 21:30:15.38ID:OLTEKpgF0553デフォルトの名無しさん
2014/09/27(土) 10:51:26.95ID:GTVQnCjUもう不便さなんか気にしてないけど新しく入る人には良いね
0554デフォルトの名無しさん
2014/09/27(土) 11:50:29.53ID:5PV3NxECCocoa Bindingも流行のFRPなりでスマートに復活してほしい
0555デフォルトの名無しさん
2014/09/27(土) 12:04:30.95ID:MIHNpQELまあ、ユーザサイドでの拡張性はあったのには間違いないがあまりお手軽とは言えなかったような
0556デフォルトの名無しさん
2014/09/27(土) 13:27:57.67ID:GTVQnCjU言語仕様が大幅にデグレしないことを祈る(多少のデグレは諦める)
0557いぼっ
2014/09/29(月) 15:51:10.96ID:V5exjQgAhttp://wc2014.2ch.net/test/read.cgi/voice/1405767952/l50
お前らのんきにイベント行ってる場合じゃないぜ
身を守りたかったら99要チェック
あ?何だ109は?補足情報120 犯罪暴露か?131、132、135、136
こいつなんでこんなに書かれてるんだ?
160、161どうしたもんかね?本人じゃね? 34歳だと?236
おっと良妻賢母の学校か〜244 ,247そーなのか〜ほー
254このマットてのはグラウンドの住宅に面した金網に脈絡なく汚ねえ立てかけ方されてるやつじゃね?取りに来たやつ悪い奴ってことか。
256,304,326,339ほー 352,355,357マジかよ、こりゃ許せねーなー変○者?
371,373ストー○ーでもあるのか、ほー375,378,406ほー
0558デフォルトの名無しさん
2014/09/30(火) 00:31:35.06ID:QoKiTOmo0559デフォルトの名無しさん
2014/09/30(火) 01:10:33.70ID:uvE37vyH0560デフォルトの名無しさん
2014/09/30(火) 01:40:24.50ID:hFTc8Xwlhttp://developers.slashdot.jp/story/14/09/28/056234/
0561デフォルトの名無しさん
2014/09/30(火) 07:03:03.17ID:VAtZj0eq新Mac板からの転記乙
0562デフォルトの名無しさん
2014/09/30(火) 11:25:25.54ID:6jfiCxioのコード部分をswiftで書き直してXcode6でコンパイルする
とコンパイルは通るけど実行時にmasterのクラスが見つか
らないのエラーが出る
Xcode6 swiftで古いタイプのスプリッター型アプリを作るの
は無理でしょうか?
0563デフォルトの名無しさん
2014/10/02(木) 15:11:41.68ID:x3OkRh++なんだこりゃ・・・謎仕様
0564デフォルトの名無しさん
2014/10/02(木) 20:18:35.62ID:2bZjvoj2?や!の一周回って不便になりつつある仕様しかりマゾい言語だわ
0565デフォルトの名無しさん
2014/10/02(木) 22:25:50.75ID:QbvSGjXEシミュレータ:Unable to boot the iOS Simulator.
Xcode:Unable to run app in Simulator
なにこれ
0566デフォルトの名無しさん
2014/10/02(木) 22:37:51.74ID:x3OkRh++自分のバグかとしばらく悩んでいたらコンパイラのバグだったり、SourceKit?はキチガイじみた挙動をするし
一番きつかったのはブレークポイントしかけるとXcodeごと落ちるやつ。SwiftのSはドSのSなのか
0567デフォルトの名無しさん
2014/10/02(木) 22:40:20.12ID:J690LAeG0568デフォルトの名無しさん
2014/10/02(木) 22:41:03.53ID:x3OkRh++unowned/weakのキャプチャは不安定っぽいから当分避けた方がよさげ
0569デフォルトの名無しさん
2014/10/02(木) 22:53:13.31ID:yH69NZoH今本番に近い形で使うチミはドMだと思うけど。すでに快感になってるでしょ?
0570デフォルトの名無しさん
2014/10/02(木) 23:11:06.89ID:2bZjvoj2C言語しかり、その方がしっかりとエンジニアが育つ(淘汰されるとも言う)
PHPみたいにテキトーな言語仕様で始まってテキトーな言語仕様改変を続けると酷いことになる
最初のHTMLの中にコードが書けるって特徴どこ行ったっつーね
0571デフォルトの名無しさん
2014/10/03(金) 02:57:59.34ID:bGT90BWixcode6.0までは実行できてたんだよな
self.navigationController?.navigationBar.titleTextAttributes = [
NSFontAttributeName : UIFont(name: "HiraKakuProN-W3", size: 20)
]
0572デフォルトの名無しさん
2014/10/03(金) 08:31:11.12ID:I4AMywYFこのダメ言語。
0573デフォルトの名無しさん
2014/10/03(金) 09:48:23.08ID:teBDXpOS>>571
sizeをCGFloatにキャストしたらどうかな?→ CGFloat(20)
数値の暗黙変換がないのはミスを減らせるメリットはあるけど、どうにも記述量が増えるのと直感性に欠けてストレスたまる・・・
0574デフォルトの名無しさん
2014/10/03(金) 09:52:42.87ID:TB3vQoT4と思ったら既に1.0リリース済みだったww
0575デフォルトの名無しさん
2014/10/03(金) 10:08:14.38ID:JgRn7gTIこれって内部的にはコピーインストラクタ?それともキャスト?
0576デフォルトの名無しさん
2014/10/03(金) 10:11:26.14ID:JgRn7gTI言語仕様は1.0でもXcodeと小さなランタイムが開発中
安定してるわけないだろ
0577デフォルトの名無しさん
2014/10/03(金) 10:31:30.58ID:teBDXpOSCommand+Clickすればわかるけど、セマンティクス的にはコピーコンストラクタに近いっぽい
FloatingPointType#init(Int)を呼び出しているので
0578デフォルトの名無しさん
2014/10/03(金) 10:36:05.48ID:CaIs5bTMアプリのアップデートで既存プロジェクトを開いたらコンパイルできませんって状況多発だろうなー。
0579デフォルトの名無しさん
2014/10/03(金) 10:54:15.73ID:teBDXpOShttps://github.com/ksm/SwiftInFlux
0580デフォルトの名無しさん
2014/10/03(金) 12:03:55.59ID:I4AMywYF早すぎて腐ってたんだろ。
これ、グダグダが続くだろうね。
0581デフォルトの名無しさん
2014/10/03(金) 13:07:43.20ID:IPRvBh74Swift1.1からFailable Initializerが導入されて、init()がOptional型を返せるようになったからUIKitのAPIもそれに合わせられた
init(name: String, size: CGFloat) -> UIFont?
だから辞書に入れるときに明示的にアンラップしないといけない
(ていうか1.0の場合でもUIFont#init(name:, size:)はnil返しうるから、一旦Optional型に代入してnil検査するのが行儀のいいコード。リリースノートに書いてある。)
0582デフォルトの名無しさん
2014/10/03(金) 13:43:42.73ID:JgRn7gTIいけてねーな
キャストとコピーコンストラクタは分けて考えるべきだろ
ランタイムの中の動作が気になる所だ
0583デフォルトの名無しさん
2014/10/03(金) 13:54:52.53ID:kCklu6JZ抽象度下がって全然初心者に優しくねーな
というかここまで来たらC++でいい気がする
型推論もタプルも名前空間もジェネリクスもあるしな
Swift投げ捨ててC++でフレームワーク作り直せよ
0584デフォルトの名無しさん
2014/10/03(金) 14:09:31.31ID:JgRn7gTIマゾにはたまらない良い言語だな!
0585デフォルトの名無しさん
2014/10/03(金) 14:25:43.54ID:gFFcTCDHC++にするんだったらObjective-Cのままでいいよ
0586デフォルトの名無しさん
2014/10/03(金) 15:11:57.89ID:bGT90BWi>>581
ありがとう
Failable initializerでググったらいろいろ出てきた
var font = UIFont(~)
if font == nil {
で条件分岐することで出来た
でも自分で使うためのアプリだからnilチェックしないでUIFont(~)!って使ってるけど
0587デフォルトの名無しさん
2014/10/03(金) 15:24:33.71ID:teBDXpOSJavaみたいに抽象データ型をList<Int>とかSet<String>とかで表現したいのに
protocolがジェネリクスパラメータに対応してなくてAssociated type?でしか拡張できないから
関数側でwhereとか使って型の条件式を記述しなくちゃいけない(だるいけどstructやclassでサンクを作るという手もある)
C++みたいに関数をコンパイラレベルで具象型に特殊化できるようにするためなんだろうけど
カジュアルにやりたいのにしんどい仕組みを強要されるのはつらい
0588デフォルトの名無しさん
2014/10/03(金) 19:20:58.53ID:CaIs5bTM0589デフォルトの名無しさん
2014/10/03(金) 19:29:21.00ID:+fJWotzNこれは駄目かもわからんね
0590デフォルトの名無しさん
2014/10/03(金) 21:45:35.60ID:+Kawa44E> Swift投げ捨ててC++でフレームワーク作り直せよ
そのフレームワークが COM(Component Object Model) なんだけど、
いまさら COM でゴリゴリ C++ コードを書きたい奴は >>583 の他に誰かいる?
>>587,588
カジュアルな開発を希望ならば、スクリプト言語の RubyMotion を使えばいい
あくまで Swift は Objective-C における C の安全性という問題を解消することを
目的に設計された言語だから、最初からカジュアルな開発なんて目標にしていない
0591デフォルトの名無しさん
2014/10/03(金) 22:00:05.06ID:CaIs5bTM俺は希望してないしObjective-Cでいいんだが、SwiftでiOS開発に夢見て参入してきた人らはちょっと涙目かなとw
0592デフォルトの名無しさん
2014/10/03(金) 22:24:45.14ID:teBDXpOSC++は表現力高いから便利化レイヤーを設けた上ならカジュアルな記述もウェルカム
C++でQtみたいなフレームワークfor IOSを作ってくれればよかったんじゃ?とはおもう
http://qt-project.org/doc/qt-5/ios-support.html
ってQt自体がiOS対応してた・・・
0593デフォルトの名無しさん
2014/10/03(金) 23:18:46.10ID:9KxFI5riえ?そんな目的だったんだ?
0594デフォルトの名無しさん
2014/10/04(土) 00:11:55.84ID:qpaDPuoT素のC++じゃどうやっても無理で、ゴリゴリ書くのが嫌ならC++/CXみたいな拡張のほうに行かざるを得ない
0595デフォルトの名無しさん
2014/10/04(土) 08:31:15.24ID:7Q0tqk1g目的の一つがなかったことにされているw
まぁなくなってはいるんだけど、あの発表に騙されて swift 1.0 から使うヤツは涙目だな
0596デフォルトの名無しさん
2014/10/04(土) 08:46:16.65ID:Sp3gzSQT0597デフォルトの名無しさん
2014/10/04(土) 11:12:57.03ID:BF4zfWnE0598デフォルトの名無しさん
2014/10/05(日) 04:37:29.36ID:8YLPCOSQ我々の最大の敵は、複雑性だというのに
0599デフォルトの名無しさん
2014/10/05(日) 04:41:40.17ID:fFbVpevH0600デフォルトの名無しさん
2014/10/05(日) 08:27:02.37ID:NF9YVIvk既存ソースが最新環境でビルド出来ないのなら、クライアントにソース改修の必要性を理解してもらってコストを捻出してもらわなければならない。
タダでやります→プロジェクトの規模が大きかったらどうする?抱えてるプロジェクトがあればあるほどアップデートも一苦労だぞ。アップデート時期も重なるだろうしな。
古い環境でビルドすればいい→新しいSDKの機能が必要な時はどうする?新しい機能の実装に集中したいのにまずプロジェクトのアップデートからなんて少し残念だよな。これは昔から多くのケースで存在する問題だけど今のSwiftほどではない。
お遊びで短いコードを書いてたり小規模でやってるうちは問題にならないが、ちゃんと仕事で使うには保守性って大事だよ。君が技術以外の事は一切考えなくていい職場、立場にいられるならそれは幸せな事だが、普通はそうはいかない人の方が多い。
それにある程度どの環境でもすぐに実行出来ないと初学者には辛いしOSS等で広がりをみせるのも難しくなると思う。要は流行るかどうか。
長々と戯言を書いてすまんね。
0601デフォルトの名無しさん
2014/10/05(日) 08:29:40.59ID:g5FzxXm/そんなもの自分の理解力の有無で解決するんだから
最初から複雑なら問題ない、それに合わせれば良いから
ジリジリと段階的に複雑に(ビルドエラーに)するから問題、手間もかかるし理解の追従が面倒
0602デフォルトの名無しさん
2014/10/05(日) 08:34:30.31ID:0YR4E1Q10603デフォルトの名無しさん
2014/10/05(日) 08:36:43.98ID:g5FzxXm/そこに新しい言語があるから
0604デフォルトの名無しさん
2014/10/05(日) 09:06:05.13ID:0YR4E1Q10605デフォルトの名無しさん
2014/10/05(日) 09:24:41.65ID:g5FzxXm/swifterと言ってもらいたい
0606デフォルトの名無しさん
2014/10/05(日) 09:29:03.68ID:MP9adC4f0607デフォルトの名無しさん
2014/10/05(日) 09:58:44.18ID:jEt7DQYF毎年30万払って、ザマリンのライセンスを買えば.NETを使ってiPhoneで動くアプリを作れる。
0608デフォルトの名無しさん
2014/10/05(日) 10:07:14.22ID:RMzze9l20609デフォルトの名無しさん
2014/10/05(日) 10:09:19.28ID:6amJApcnオブジェクトが何か?がわかってればそれに似た類いのものと
考えればある程度イメージはつくだろう
0610デフォルトの名無しさん
2014/10/05(日) 10:10:24.00ID:RMzze9l2クラスの下位互換にしか思えないんだけど
0611デフォルトの名無しさん
2014/10/05(日) 10:11:00.95ID:RMzze9l20612デフォルトの名無しさん
2014/10/05(日) 10:13:12.09ID:swZzzMxDhttp://stackoverflow.com/questions/24217586/structure-vs-class-in-swift-language
0613デフォルトの名無しさん
2014/10/05(日) 10:13:18.18ID:yGAhCqFy0614デフォルトの名無しさん
2014/10/05(日) 10:18:22.61ID:RMzze9l2copied と passed by reference なのはわかったけど使い分けるポイントはここだけ?
オブジェクトを作ろうと思って構造体かクラスかの選択で迷ったときは将来的に値渡しか参照渡しするかどうかで決める?
>>613
効率というのは処理とかメモリとかいう意味で?
0615デフォルトの名無しさん
2014/10/05(日) 10:33:23.25ID:jEt7DQYFswiftは始めに言語仕様を見たぐらいだけど、Cの構造体をラップした物だったら
ヒープを使わなくって、スタック上に確保できるとかそんなんじゃない?
使い分けはiOSのグラフィック周りやCoreMedia周りのAPIを眺めれば分かると思う。
0616デフォルトの名無しさん
2014/10/05(日) 11:05:24.88ID:02YBE5fUインターフェースに絡むところなんて尚更
パフォーマンスチューニングする際のTipsとして
class->structへの置換えでパフォーマンス、メモリ効率が上る可能性があって
置き換える場合は必ず実測して効果のあったもののみに留めるくらいの認識でいいと思う
とにかく実測して効果あるかどうかが重要
0617デフォルトの名無しさん
2014/10/05(日) 11:28:15.75ID:yGAhCqFy0618デフォルトの名無しさん
2014/10/05(日) 12:21:31.92ID:8YLPCOSQいえ、だから警告ちゃんと出てるのにその修正がコストになるなんて考える方々は技術者に向いていないという主張ですが?
そういう方は、枯れた言語使ってればいいと思うのです
あなたの仰る、「きちんとした仕事で取り組む大規模なコード」になればなるほど、警告の出る修正よりも、ソースの可読性や設計に起因する警告の出ないバグに対処するコストの方が多いのは自明だと思いますが...
繰り返しですが、その辺の理解がないなら技術者に向いてないと言いたかっただけです
0619デフォルトの名無しさん
2014/10/05(日) 13:00:55.87ID:Q5XlM4aR苦しい
0620デフォルトの名無しさん
2014/10/05(日) 13:36:20.17ID:g5FzxXm/0621デフォルトの名無しさん
2014/10/05(日) 13:38:16.55ID:Q5XlM4aR0622デフォルトの名無しさん
2014/10/05(日) 14:19:52.75ID:NF9YVIvkコストは君自身の技術者としての感覚のコストでは無くて会社のコストの話ね。
クライアントの話が出てきてるんだから理解してよ。
0623デフォルトの名無しさん
2014/10/05(日) 15:45:34.60ID:8YLPCOSQ?
最初から会社としてのコストですが?
0624デフォルトの名無しさん
2014/10/06(月) 14:40:25.32ID:mnethBK5C++ support
This is another obviously desirable feature, it is just a lot of work and didn't make it in 1.0 either.
? Chris Lattner
Source: https://devforums.apple.com/thread/228324?start=50&tstart=0
0625デフォルトの名無しさん
2014/10/06(月) 18:15:33.52ID:pOS/04qw会社としてのコストで話が通じているのならテストやレビューなど他の人手も作業も発生するんだから、自分だけコード直してはい修正完了、Xcodeの警告通りに修正したからオッケーですよでは済まなくて、そこでコストが発生するのは分かるでしょ?
0626デフォルトの名無しさん
2014/10/06(月) 19:03:00.41ID:8JYygkjt最初からそのコストと比較してますが?
言語の機能向上によるメリットに比べれば、警告の修正で必要なテストやレビューなんてたかが知れてるって主張なんですが
ただコストあるよね?とか言われても、費用対効果考えられないアホなんですねとしか言えないです
0627デフォルトの名無しさん
2014/10/06(月) 20:42:24.04ID:wNc45BQ2Apple製品なんて最高に客を騙しやすいモノなんだから
そうでなくても、いい加減スレ違いだから、新しい環境におけるコスト意識として別所で議論してくれ
0628デフォルトの名無しさん
2014/10/08(水) 19:27:41.78ID:nG4ErnKB0629デフォルトの名無しさん
2014/10/08(水) 20:18:41.66ID:nG4ErnKB0630デフォルトの名無しさん
2014/10/08(水) 20:26:14.76ID:UJx9zVSCM$とは大違いだぜ!!(死んだ魚の目
stableの6.0系も更新したかな
こちとら製品開発だからdev版は使えんぞ
0631デフォルトの名無しさん
2014/10/09(木) 09:22:43.34ID:9D8V5W1a0632デフォルトの名無しさん
2014/10/09(木) 09:32:17.64ID:0aKnCpCg0633デフォルトの名無しさん
2014/10/09(木) 09:35:10.37ID:O8gj2Oze0634デフォルトの名無しさん
2014/10/09(木) 10:59:41.94ID:3tS9WfPv0635デフォルトの名無しさん
2014/10/10(金) 12:56:18.08ID:HrDP8ET00636デフォルトの名無しさん
2014/10/10(金) 18:59:49.43ID:3n2DZYHj???
駅に行く途中の公園ではけっこう盛り上がってたよ。
0637デフォルトの名無しさん
2014/10/10(金) 19:43:14.52ID:6Es5cgDH0638デフォルトの名無しさん
2014/10/11(土) 10:28:45.37ID:FJ/mX1hb0639デフォルトの名無しさん
2014/10/11(土) 10:51:52.06ID:OVmPDf/7ただ色々不便なので普通にobj-cで組んだ方が良かったと絶賛後悔中
0640デフォルトの名無しさん
2014/10/11(土) 13:55:19.47ID:QCqlqyAj■ このスレッドは過去ログ倉庫に格納されています