トップページ⇒mac
1002コメント294KB

プログラミング言語Swift 3

■ このスレッドは過去ログ倉庫に格納されています
0001名称未設定2014/08/23(土) 11:54:39.75ID:vUov9+yQ0
Appleの新言語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
Using Swift with Cocoa and Objective-C
https://itunes.apple.com/jp/book/using-swift-cocoa-objective/id888894773?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/

関連スレ
Swift part3
http://peace.2ch.net/test/read.cgi/tech/1406083608/

前スレ
プログラミング言語Swift (実質 2)
http://anago.2ch.net/test/read.cgi/mac/1401736921/
新言語Swiftを語るスレ
http://anago.2ch.net/mac/kako/1401/14017/1401736249.html
0153名称未設定2015/06/28(日) 20:11:58.36ID:Ch8eMncC0
>>152
http://stackoverflow.com/questions/24111984/how-do-you-test-functions-and-closures-for-equality
0154名称未設定2015/07/07(火) 12:03:59.41ID:xGKfAusl0
NavigationContoroller
└ViewContoroller
↓遷移
TabView
└CostomViewContoroller

と、storyboardで定義しています。

タブごとに、NavigationBarに独自のボタンを追加したいのですが、
CostomViewController の viewDidLoad() で、

 self.navigationItem
 self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: “test”, style: .Plain, target: self, action: nil)

としても、testボタンが追加されません。

ViewContorollerで定義するとtestボタンが追加されるのですが、
TabViewに移るとtestボタンが消えます。

どのようにしたら、CostomViewContoroller上でボタンを追加できますか?
0155名称未設定2015/07/07(火) 12:27:33.80ID:NCbu5piy0
>>152

typealias CallbakFunc = (fn:(Void) -> Void,uuid:String)
func createUUIDString() -> String {
let uuid = CFUUIDCreate(nil)
let uuidString = CFUUIDCreateString(nil, uuid)
return uuidString! as String
}

func testEqualsfunc() {

var a:CallbakFunc = (fn:{},uuid:createUUIDString())
var b:CallbakFunc = (fn:{},uuid:createUUIDString())
var c:CallbakFunc = (fn:{},uuid:createUUIDString())

var list:[CallbakFunc] = []

list.append(a)
list.append(b)
list.append(c)

for x in list {
if x.uuid == b.uuid { // Swift compile Error : Binary operator '==' cannot be applied to operands of type '() -> ()' and 'CallbakFunc'
println("b is hit")
}
}
}
0156名称未設定2015/07/07(火) 13:05:36.84ID:EBKNUzWU0
>>154
Swift というより iPhoneアプリ開発初心者 なレスだと思うけど、

NavigationContoroller
- ViewController
ViewControllerはNavigationContorollerの直接な管理下/相互関係なので、self.navigationItem.rightBarButtonItemの変更はNavigationContorollerにもわかる

NavigationContoroller
- TabBarController
-- ViewController(1)
-- ViewController(2)
ViewController(1,2)はTabBarControllerの直接な管理下/相互関係であり、NavigationContorollerの直接な管理下/相互関係なのはTabbarController
故に、TabbarControllerのを変えればいいんじゃね

ViewController(1,2)のviewWillApperなんぞで、
self.tabBarController.navigationItem.rightBarButtonItem =
ってするか、TabBarControllerのサブクラスでタブ切り替え検知して、
self.navigationItem.rightBarButtonItem = rightButtonInCurrentViewController
ってするとか
0157名称未設定2015/07/07(火) 13:23:28.22ID:EBKNUzWU0
>>156
>TabBarControllerのサブクラス
つうかUITabBarControllerDelegateでか。検知できるのは
0158名称未設定2015/07/07(火) 14:04:28.20ID:xGKfAusl0
>>157
レスありがとうございます。おっしゃる通りiPhone開発初心者です。

アドバイスいただいた通り、TabViewのカスタムクラスを用意して
UITabBarControllerDelegateでタブの切り替えを検知し、
タブごとにボタンの制御ができるようになりました。

ありがとうございました。
0159名称未設定2015/07/07(火) 14:45:47.19ID:EBKNUzWU0
>おっしゃる通りiPhone開発初心者です
そういう意味じゃなく、いや、意味なのかもしれないが、趣旨は、
[SDK]iPhoneアプリ開発初心者質問箱43[touch][iPad] [転載禁止]©2ch.net
http://anago.2ch.net/test/read.cgi/mac/1427294210/
こっちでのほうが適切だろうなという。ともあれ、なにより
0160名称未設定2015/07/07(火) 15:40:33.13ID:pm4V6z940
重ね重ねありがとうございます。
次に、swiftでなく、iPhoneアプリの構造に関わる質問があれば、
誘導いただいたスレにて質問させていただきます。
0161名称未設定2015/07/08(水) 16:48:01.49ID:BrpX//mL0
var i = 500
var str = NSString(format:"0x%08X",i)

これと同じこと(整数を16進表記の文字列にする)をIntとStringだけで出来る?
0162名称未設定2015/07/08(水) 18:09:05.85ID:BrpX//mL0
var i = 500
var str = "0x" + String(i, radix:16, uppercase:true)

あったー。けどなーんか微妙だな。
printfフォーマットも普通にサポートしてくれれば良いのに。
0163名称未設定2015/07/08(水) 18:20:54.25ID:k+ymsI9b0
var str = String(format:"0x%08X",i)
??
0164名称未設定2015/07/08(水) 18:46:14.33ID:AqMwIU/20
もう色んなことに目を瞑ってNSString使えばいいじゃん
と思ったけどOSS化(Cocoaのないランタイム)に向けてPure Swiftライブラリでも作ってんのかな
0165名称未設定2015/07/08(水) 20:36:33.81ID:BrpX//mL0
>>163
あれ、ある…
command-クリックしてもどこにも飛ばないんだけどどういうこった?
ここにも載ってないし
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Reference/Swift_String_Structure/index.html

>>164
いや別にNSStringでもいいんだけどね。気になっただけ。
0166名称未設定2015/07/08(水) 23:12:01.65ID:k+ymsI9b0
>>165
ググって探して見たのでは「俺がみつけたよーん」とかなんとか書いてあったような気がしないでもない
「ベータで」というのも目に入ったので、まあ今は正式なのだろうなと思ってたけど、まだ正式じゃないのかな??ドキュメントだけなのか実装にまだ問題があるのかその他なのかで
0167名称未設定2015/07/08(水) 23:23:50.53ID:BrpX//mL0
>>166
そうだねprivateかもしれんね。
ありがとう
0168名称未設定2015/07/08(水) 23:26:04.41ID:k+ymsI9b0
https://developer.apple.com/library/prerelease/ios/samplecode/MusicMotion/Listings/MusicMotion_Activity_swift.html
で使ってるから、安心して使えるだろう。仮にUndocumented API縛り的な意味で危惧するとしたら
0169名称未設定2015/07/12(日) 19:38:01.84ID:pO9MOfRV0
swiftって説明が変数・制御構造とか普通な展開のばかりだけど
出力入力どんな風に簡単にできるかっていうのは
どこ読めばいいの?
ドット絵とかベクトル絵とかマウス入力とかキーボード入力とか
0170名称未設定2015/07/12(日) 19:44:46.47ID:UCG4B6Co0
サンプル
0171名称未設定2015/07/17(金) 13:06:10.58ID:+raBPvsS0
せんせい質問∩(´・ω・`) 超初心者です。

Swiftの入門本を買って、一通り熟読し、なんとなーく「こうやんのか」くらいは
分かりました。

が、次のステップで何やればいいのか分かりません(´・ω・`)
サンプルプログラムはいっぱい見たんですが、これから何したらいいんでしょ?
簡易なデータベース的なものを作ってみたいのですが。
0172名称未設定2015/07/17(金) 14:19:01.43ID:6svREoHG0
作ったらいいじゃないか
道を知っていることと実際に歩くことは違う
0173名称未設定2015/07/18(土) 10:51:33.68ID:Z13hgPgi0
>>172
やってみてるんですが、次のステップとして何をしたらいいのか分からないのです(´・ω・`)
0174名称未設定2015/07/18(土) 11:00:15.99ID:pg6yA3mU0
ここが重複スレで、こっちが本スレと学ぶべきだな
http://anago.2ch.net/test/read.cgi/mac/1408755325/
0175名称未設定2015/07/27(月) 18:35:18.84ID:m4P9ukw70
上から目線で話したがるヤツばっか
0176名称未設定2015/07/27(月) 19:16:58.35ID:GvR464r80
最近スイフト始めた新米で、実機に入れられるようにXcodeBetaでMultipeerConectivityのp2p通信をしたいんだけど、
sendDataで渡すときの処理で、

do {
try _session?.sendData(data, toPeers: peerID, withMode: MCsessionSendDataMode.Reliable)
} catch {
}

コレで
'_??' is not convertible to '()'
'<<error type>>?' is not convertible to '()'
の2つのエラー出て詰まってるんだけどどうしたら良いですか?
調べてもわからず、知恵をください('A`)
0177名称未設定2015/07/27(月) 19:43:48.83ID:54LBs3Mr0
>>176
let _session: MCSession? = nil
let peerID: [MCPeerID] = []
let data: NSData = NSData()
do{
try _session?.sendData(data, toPeers: peerID, withMode: MCSessionSendDataMode.Reliable)
}
catch{
}
でエラー出ないけど。って、peerIDは名前がクサいから、
let peerID: MCPeerID = MCPeerID()
にしたら、
'_??' is not convertible to '()'
がでたなw
0178名称未設定2015/09/24(木) 22:45:28.22ID:8L3Ba62N0
いつになったら業務で使えるくらい安定するんだろう
0179名称未設定2015/09/27(日) 09:04:18.98ID:/fA8PxsC0
いつの間にかswift2.0でもprintln使える様になってるのね。
0180名称未設定2015/09/27(日) 12:53:23.23ID:jTYlqoA30
ん?そう??
0181名称未設定2015/09/27(日) 23:34:15.43ID:tbPXnC660
え? printだけで良いんじゃない?
0182名称未設定2015/09/28(月) 00:04:17.01ID:MfYAyuYE0
pascalで最初にびっくりしたのがprintとprintln
0183名称未設定2015/09/28(月) 08:14:43.03ID:Vfm5iSAr0
rustで追々びっくりしたのがprint!
0184名称未設定2015/11/02(月) 14:19:09.68ID:e8SwU/fA0
また落ちた。
名前変えただけで暴走スンナよ7
0185名称未設定2015/11/13(金) 04:40:55.94ID:qYyLiqzz0
let test: String
test = "foo"
if let v = test && (v as! String = "foo") {
print("fooだよ")
}

ってできない?
0186名称未設定2015/11/13(金) 09:05:22.26ID:ZYkJFHDc0
let test: String? = "foo"
if let v = test where v == "foo" {
 print("fooだよ。")
}
0187名称未設定2015/11/13(金) 09:08:20.21ID:ZYkJFHDc0
==比較ならString?のままでもできるけど。
0188名称未設定2015/11/14(土) 10:53:48.98ID:xIzOs88n0
ありがとー、Cの感覚で唸ってたわ
0189名称未設定2015/11/14(土) 22:45:26.13ID:arrLWbEd0
?を1個だけ入る配列だととらえればCの感覚でも理解出来る
0190名称未設定2015/11/14(土) 23:26:08.53ID:izfbI7W10
天才現る!
0191名称未設定2015/11/15(日) 14:05:28.67ID:CEKeruGp0
え?
0192名称未設定2015/11/15(日) 14:46:24.24ID:v17oyqbm0
ほ?
0193名称未設定2015/11/15(日) 15:04:08.68ID:2u3KL2cn0
ば?
0194名称未設定2015/11/18(水) 10:32:14.86ID:lwKOOTtK0
今時リファクタリングもサポートされていない言語なんて糞確定ですわ
0195名称未設定2015/11/18(水) 10:41:56.66ID:/xiOlcI90
知ってる、みんな知ってて使ってる
もっとクソだったobj-cよりは文法がマシだから使ってる
0196名称未設定2015/11/18(水) 12:14:13.27ID:TN6uJfS40
>>194
はい、みなさんさよーならー
0197名称未設定2015/11/18(水) 12:52:04.89ID:sl65X6gp0
コンパイラにAST吐くオプションあるんだからリファクタリング機能ぐらい自分で実装すればいいじゃん
0198名称未設定2015/11/18(水) 13:00:52.15ID:DqvneQxQ0
>>197
もって詳しく頼む
ソースのリファクタリングにASTが関係あるの?
0199名称未設定2015/11/18(水) 13:01:32.92ID:DqvneQxQ0
>>197
もって詳しく頼む
ソースのリファクタリングにASTが関係あるの?
0200名称未設定2015/11/18(水) 13:04:41.41ID:DqvneQxQ0
>>197
もって詳しく頼む
ソースのリファクタリングにASTが関係あるの?
0201名称未設定2015/11/18(水) 13:23:31.68ID:sl65X6gp0
SourceKittenとか使う手もあるぞ
https://github.com/jpsim/SourceKitten
0202名称未設定2015/11/18(水) 18:37:16.33ID:fZyYL6sb0
>>197はバイナリの最適化のリファクタリングを言ってて
>>198は人間様向けのタブだの改行だののリファクタリングを言ってる

>>194はgoだのrustのエディタで使えてる後者を求めていると思う
しかし、簡単なテキスト整形はXcodeでやってくれる
0203名称未設定2015/11/18(水) 20:09:44.17ID:lHmicp9c0
いつになったらリネームできるようになるんだろうね
0204名称未設定2015/11/18(水) 23:15:02.00ID:eYBViItJ0
エディタの話?
0205名称未設定2015/11/19(木) 04:26:28.81ID:v5Qlgdpz0
あと50ちょい、使い切ろうぜ本スレ
http://anago.2ch.net/test/read.cgi/mac/1408755325/
0206名称未設定2015/11/19(木) 10:29:09.87ID:36ElwdIi0
コアフィルタ使って画像のサリイズしてみたけど遅すぎワロタ
0207名称未設定2015/11/19(木) 13:48:19.79ID:2W921Z6F0
時間のかかりそうな処理だな
0208名称未設定2015/11/19(木) 15:50:25.59ID:0aqlOemc0
>>186
whereのつか方判った。
おれ的今日の一番カキコ
0209名称未設定2015/11/20(金) 14:13:01.73ID:c0/wCXBQ0
>>208
そか、よかたあるな
つぎはニホンゴのべんきょするのよいあるよ
0210名称未設定2015/11/20(金) 18:24:24.57ID:IkinpZgs0
誤字脱字を知らない中国人かよw中国でもあるだろ
0211名称未設定2015/11/20(金) 18:59:12.08ID:H/cWypsp0
抜けすぎではないかと

これでも内容が伝わるあたり、日本語ってすごいな
0212名称未設定2015/11/20(金) 19:17:02.26ID:IkinpZgs0
よく見たら全然違うのだがちゃんと読めるひらがな文ってなかったっけ
0213名称未設定2015/11/20(金) 19:22:04.92ID:IkinpZgs0
あった
http://feely.jp/3138/
まあ>>209には読めないんだろうけどw
0214名称未設定2015/11/20(金) 21:07:46.13ID:vazx26Uw0
>>210まではネタにネタ被せてるのかと思ったら
>>213まで続いてマジもんだとおもたYO

>>206
それはswift関係なく重たい気がするよ
しかし、体感出来る重たさって何やってるんだ、、、
0215名称未設定2015/11/20(金) 21:27:29.62ID:IkinpZgs0
そんな細かいミスをネタにして続くとは思わなかったよ。暗っと思うからなw
マジだよマジ、俺は
0216名称未設定2015/11/20(金) 21:35:42.85ID:Ed9JxE700
マジンガーZ
0217名称未設定2015/11/25(水) 16:15:47.07ID:kOX1HaAG0
整数型から浮動小数点型への変換ぐらい自動的にやってくれよと思うんだが
0218名称未設定2015/11/25(水) 20:55:06.65ID:sHMN8w/q0
>>217
してくれないの?
0219名称未設定2015/11/26(木) 02:53:21.37ID:UtBzGG7Q0
>>218
そういう暗黙的な変換を行わない事でコードの安定性を高めてる
0220名称未設定2015/11/26(木) 07:32:56.28ID:OtuW6aGF0
すごい好意的な解釈にワロタ
0221名称未設定2015/11/26(木) 07:47:24.66ID:waE83/NN0
変換する箇所が少なければ不満も出ないと思うのだけど
そもそもそんなにたくさん変換が必要なのかい
もしかしてほんの数箇所でも嫌なのか
0222名称未設定2015/11/26(木) 09:00:18.62ID:RjpEprbi0
ちりも積もれば山となるだよ
0223名称未設定2015/11/26(木) 09:42:44.43ID:RzSxtDSV0
クラスのメソッドと同名のグローバル関数は呼べなくなるのね
糞言語ですね

func a(i: Int) -> Int {
 return i + 10
}

class B {
 func a(s: String) -> String {
  return s + "bbb"
 }

 func b() {
  print(a(100)) // ←エラー
 }
}
0224名称未設定2015/11/26(木) 10:17:10.10ID:/Qso61h70
>>223
モジュール名つけて呼べるだろ
糞はお前だ
0225名称未設定2015/11/26(木) 10:25:25.98ID:RjpEprbi0
>>224
ああ?
呼べねーよ糞
一回やってみろよ糞
お前が糞だ糞
0226名称未設定2015/11/26(木) 10:34:13.13ID:/Qso61h70
>>225
いや呼べるから
無能
0227名称未設定2015/11/26(木) 10:40:13.50ID:RjpEprbi0
>>226
だから一回やってみろって
馬鹿かお前は
人の言うことを聞けよ
0228名称未設定2015/11/26(木) 10:44:20.55ID:/Qso61h70
俺は書き込むときは必ずコード書いて確認してから書き込む
>>224の時点でコード書いて確認済み

無能ほど自分の無能を棚に上げて言語やフレームワークに文句垂れる法則
0229名称未設定2015/11/26(木) 10:48:11.36ID:RjpEprbi0
>>228
モジュール名ってアプリ名のことかよ
プレイグラウンドで試せねーじゃねーか
最初からそう書けよハゲ
お前、説明下手くそだわ
時間無駄にしたわ
0230名称未設定2015/11/26(木) 12:46:30.62ID:Ndq225Dz0
横からだがプロジェクト名がモジュール名だってアポーが言ってるぞw
0231名称未設定2015/11/26(木) 12:50:42.27ID:2IXxuB830
すげー
「自分は悪くない、全て他人が悪い」
って、久しぶりに見たわ
0232名称未設定2015/11/26(木) 12:56:15.32ID:uFA9acIW0
見聞狭いな
0233名称未設定2015/11/27(金) 18:02:04.08ID:5KkZ171g0
通は、[Int]の代わりにNSIndexSetを使う
0234名称未設定2015/11/27(金) 18:03:25.45ID:5KkZ171g0
いや、ゴメン間違った
0235名称未設定2015/12/04(金) 10:37:44.50ID:ugvMyHwh0
オープンソース化
https://github.com/apple/swift
0236名称未設定2015/12/04(金) 13:24:29.61ID:IpKQTE7J0
おおー、遂に来たか。
0237名称未設定2015/12/04(金) 15:33:03.82ID:TWswQjTO0
サーバサイド利用なんかでも賑わってほしいね
Cocos2d-xをswiftで書いてマルチプラットホーム出力できるような未来にも期待
0238名称未設定2015/12/05(土) 09:27:11.60ID:nRt9eie50
>>227

この人すごいわぁ。

まあ、コマンドラインで実行するなら、
print(a(100)) // ←エラー
修正↓
print(main.a(100))

ソースファイルの名前によらず、モジュールはmainね。
0239名称未設定2015/12/13(日) 00:09:53.83ID:34Cd2/r/0
すっかりオワコンだな
0240名称未設定2015/12/13(日) 00:16:22.96ID:33VnaplL0
swiftって関数内でstatic変数宣言できないのはなんでなの?
絶対あったほうが便利なんだけど
0241名称未設定2015/12/13(日) 00:24:18.07ID:U56fmPkN0
お前らが社畜がごとくSwiftを使ってくれるおかげで、
自己満足言語Swiftを作ったChris Lattnerのベジータ親父も億単位の高給もらって
ウハウハよ
http://nondot.org/sabre/
おまけに、Swift参考本を執筆した作者もおこぼれをいただけてる

本当お前ら乙だな
0242名称未設定2015/12/13(日) 00:28:17.92ID:ZQXftx0w0
自己満野郎の給料に貢献するために新しい言語使わされてお前らよく馬鹿らしくならないなwww
0243名称未設定2015/12/13(日) 01:15:11.04ID:VfOfM0v90
へえ、我々エンジニアは道具だと思ってますけん
あるもん求められて使える状態にしとくだけすよ
なのでreplします…我々は研ぐとか言いますが、要するに戯れるだけなんですわ。

perl CGIの時からなにも変わらないんですよ。ただ、楽しいからやってる。
馬鹿らしい、って思うあなたがかわいそうに思いますよ。
それが楽しいかどうかっていう、よそんげの考えも及んでないんだよね、あんた。
まあ、これ鉄道模型にハマってる友人の受け売りなんですけどね。
0244名称未設定2015/12/13(日) 01:34:40.49ID:XUnElO3w0
Objective-Cではダメだった点って何でしょうか?
0245名称未設定2015/12/13(日) 01:37:33.64ID:c6EPIywZ0
これからはswiftだな
0246名称未設定2015/12/13(日) 02:40:37.74ID:diXCWqzS0
>>244
基本がCなのでそろそろC由来のポインタ*とか美しくないなとか
コンパイラディレクティブの@が多いよとかいろいろあったのと
そもそも、Objective-Cは言語自体はほとんどCで
ぜんぶObjective-C(またはObjective-C++)自身で定義した
クラス群で拡張してる部分があってそろそろ整理は必要だよなーとは
みんな思ってはいたのだけれども…

えーと、出てきた新言語swiftがあまりにも似ても似つかないというか
ぶっちゃけObjective-CがObjective-Cの特徴として好まれていた部分を
"ぜんぶ消してきた"ので、正直従来の開発者はObjective-Cでいいや。って感じです。
0247名称未設定2015/12/13(日) 02:55:54.92ID:XNR0NrEa0
でつていう
0248名称未設定2015/12/13(日) 04:41:11.59ID:kH/caN6e0
swift要らねえスレ立てて火病してろw
0249名称未設定2015/12/13(日) 09:01:17.73ID:XUnElO3w0
>>246
なるほど
これほどCに純粋にオブジェクト指向を追加した言語はなく、
習得が簡単だったのになというのが自分の所感です
私もObjective-Cでいいやってのには同意です
0250名称未設定2015/12/13(日) 10:21:20.48ID:2AX8YiIQ0
俺はiOSアプリ作りたくて2014年にマシン買ってSwift使い始めたんだが、
Swiftは言語仕様がデカすぎる気がする。

Swift = Obj-C + Optional + Enum拡張 + protocol拡張 + ジェネリクス + clousure拡張(キャプチャ制限できる)

ってかんじで、Obj-Cのコンパクトさが、良さげに思える今日この頃。
0251名称未設定2015/12/13(日) 10:43:46.59ID:AbrkiSeQ0
え?
0252名称未設定2015/12/13(日) 10:47:52.39ID:HZ0qTI7o0
何気にObj-Cは秀逸な言語だと思うわ
■ このスレッドは過去ログ倉庫に格納されています