トップページ⇒tech
1001コメント317KB

Swift part3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/07/23(水) 11:46:48.42ID:x29J8vdY
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

Apple 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/
0663デフォルトの名無しさん2014/10/17(金) 00:55:44.77ID:G2VicKrt
ははは、勘違いしたんだろう可愛いな
0664デフォルトの名無しさん2014/10/17(金) 01:12:59.37ID:fAn6QzIt
>>658
Swift自体はObjCより束縛を静的にして、C++のvirtual相当でメソッド呼び出しをできるようになってる
ただObjC互換でクラスを設計する限りはObjCと同様objc_msgSendのオーバーヘッドが消えないから
その点でメリットは得られない
0665デフォルトの名無しさん2014/10/17(金) 01:25:24.74ID:VeyUCNCW
ObjCのメッセージもキャッシュされるから速いけどな
0666デフォルトの名無しさん2014/10/17(金) 01:50:42.54ID:2wTmJIFL
Cocoa/Cocoa Touchって将来的にSwiftベース化するの?
0667デフォルトの名無しさん2014/10/17(金) 01:57:14.31ID:2wTmJIFL
おっと

http://en.wikipedia.org/wiki/Objective-C#Apple_development_and_Swift
> At WWDC 2014, Apple announced plans to replace Objective-C for Cocoa development
> with its new Swift language, which it characterized as "Objective-C without the C".

って書いてあったわ。
0668デフォルトの名無しさん2014/10/17(金) 02:13:34.48ID:q6NXwDy0
>>661
LLVMはコンパイラ時だけの話だろ。オブジェクトコードはネイティブコードだぞ
実行ファイルをみてみなさいな
Objective-CではってPlaygroundの話でもなさそうだし、元ののもそうだがなんでVMなんて発想になるのかさっぱりわからんな、あるとしてもブリッジだろに
0669デフォルトの名無しさん2014/10/17(金) 02:14:54.62ID:2wTmJIFL
>>661-662
小さなランタイムって、Swift非対応の古いOSでの話じゃないの?
iOS8とかYosemiteでもわざわざ互換ライブラリを噛ませて実行するの?
0670デフォルトの名無しさん2014/10/17(金) 02:15:36.06ID:q6NXwDy0
もともとよくわかってないんじゃね
0671デフォルトの名無しさん2014/10/17(金) 02:25:42.71ID:fAn6QzIt
>>669
互換ライブラリというかランタイム自体が.appパッケージに同梱されてる
別にだから遅いとかいうことはないけどね
サイズが増える程度
0672デフォルトの名無しさん2014/10/17(金) 08:17:46.66ID:0vD84hES
>>669
ランタイム自体を解析したという記事を見たことがないので
詳しいことはラトナーはじめアップルの開発者ぐらいしか知らんのでは。

ラトナーの書簡をみるかぎり,確かに旧OSで走らせるために
ランタイムをくっつけたように読めるが,iOS8やYosemiteで
ランタイムが利用されていないかどうかまでは分からんね。

サードパーティの開発者にとっては,アプリの目的に照らして十分なスピードが出てりゃ
特に気にすることでもないし。
0673デフォルトの名無しさん2014/10/17(金) 08:54:19.69ID:Lmpe/lkW
>>669
Swiftのバージョンが今後もちょくちょく変わるからアプリをビルドする際にそのバージョンのランタイムがアプリ内に同梱される
Swiftでビルド時にアプリの容量が膨らむのはそのせい
0674デフォルトの名無しさん2014/10/17(金) 10:45:35.24ID:Pb74/m4N
Swiftの機能/性能変えるからiOS8やYosemiteでも当然のようにランタイム利用してるんだよなぁ
ランタイムのロードのためにアプリ起動の時間は確実に obj-c < swift なわけで
マジで obj-c で組んでよけば良かったと若干後悔してる
0675デフォルトの名無しさん2014/10/17(金) 10:57:37.78ID:Lmpe/lkW
>>674
まだSwiftは遊びレベルでちゃんとしたものは作ってないんだけど、そんなに分かるぐらい起動に時間かかるの?
0676デフォルトの名無しさん2014/10/17(金) 11:53:10.76ID:TZNb7SnY
プログラムがランタイムライブラリ読むのって当たり前だと思うんだが、何を問題視してるんだ?
VM使ってるわけじゃないんだろ?
ライブラリってのはオーバーヘッドじゃないと思うぞ。
0677デフォルトの名無しさん2014/10/17(金) 12:26:32.43ID:vy93goZR
C言語で書いたプログラムだってランタイムと呼べる部分は存在する
純粋にロードの時間なら共有ライブラリになってれば気にするほどのもんじゃない
ランタイム部分の初期化の時間も、GCすらも無い言語だしやることそんなにないよね
0678デフォルトの名無しさん2014/10/17(金) 13:37:02.30ID:UwibYcko
ユーザにとってメリット皆無なのが問題よな
ランタイムロードしかりブリッジ処理しかり同じ機能の実現に対して速度遅延要因ばかり
アップルプラットフォームでは開発者のメリットなんぞどうでもいいわ
今どのくらいのサイズになったか見てないけど8MBの小さなランタイムは笑えぬ
0679デフォルトの名無しさん2014/10/17(金) 13:39:32.46ID:gZX2SDbp
一桁メガバイトで文句言う奴は一般ユーザーじゃねーな
メガデモ制作者か
0680デフォルトの名無しさん2014/10/17(金) 13:59:34.22ID:q6NXwDy0
まあ、ユーザのメリットとかは大げさだと思うが、結構作り込んでも全然実行ファイルが大きくない/大きくならないってのがある/あったからな
8Mっていったら結構大きいと思わなくもなくもなく
0681デフォルトの名無しさん2014/10/17(金) 15:02:56.12ID:5kDo/Q7P
Xcode6.0.1でApp Store向けにArchiveしてみたらやっぱり8MBあって泣いた
zip圧縮したら2.5MB弱にはなる様子だけど、それでもIPAの容量の半分がランタイムじゃねーかよw
obj-cで書いたら半分の容量で動作も早いと思うと、Swiftで作ってます(キリッ なんて言えねー。。。orz
0682デフォルトの名無しさん2014/10/18(土) 05:55:50.96ID:tA+rY70l
心のお悩みは別の板でどうぞ。
0683デフォルトの名無しさん2014/10/18(土) 07:55:12.92ID:kvayFhIZ
swiftで悩んでるんですがどうすればいいですか、先生
0684デフォルトの名無しさん2014/10/18(土) 08:40:57.68ID:Vkda+ET9
キャリア回線のみで使ってるライトユーザーもいるからな。容量は僅かでも少ないに越したことはないと思うけど、今時数MBぐらい気にしなくて大丈夫?
0685デフォルトの名無しさん2014/10/18(土) 13:58:36.95ID:ZA6xCqgZ
ちょっとしたことやるとすぐセグフォるコンパイラをなんとかして・・・
何がBuild Failedだよ。謝罪しろ
0686デフォルトの名無しさん2014/10/18(土) 14:36:10.77ID:ZA6xCqgZ
IRジェネレーターのスケジューリングがバグってるわ
コンパイル通ってない関数テンプレートのコードを使っている関数のIR生成を決行しようとしてセグフォになっていたっぽい・・・
0687デフォルトの名無しさん2014/10/18(土) 16:39:33.69ID:LYpFNA7o
ついでに賠償も

Xcode6.1で文法って変わったかな
そろそろstableも更新来るだろうから怖いぜ
0688デフォルトの名無しさん2014/10/18(土) 17:19:47.00ID:tVVqhJ93
ちょっと構文木深くなったらすぐパニクるしな
0689デフォルトの名無しさん2014/10/19(日) 10:45:10.15ID:mHbXct8X
https://developer.apple.com/downloads/index.action
・Xcode 6.1 Oct 17, 2014
0690デフォルトの名無しさん2014/10/19(日) 12:06:06.34ID:m+/mjmwX
非安定版はお呼びでない
0691デフォルトの名無しさん2014/10/19(日) 23:23:36.40ID:fIIE0Vfi
SourceKitのパニクり方にすこし落ち着きが見られる(アラート表示が連射されなくなってる?)
0692デフォルトの名無しさん2014/10/20(月) 00:25:09.22ID:TLBoQMKO
ASでのリリースはできるようになったけどMASでのリリースまだなんだよね?
0693デフォルトの名無しさん2014/10/20(月) 22:44:05.69ID:j16eCxP/
初心者なんですが、xibとカスタムクラスで作ったUIのプロパティにforループの中からインスタンス毎にアクセスしています。
変数をクラス文の外に出してグローバル変数にし、ViewControllerからアクセスしているのですが、表示がものすごく遅くなってしまいました。(本当にこれが原因かは分からない)
クラス外部(ViewController)からインスタンス指定無しでプロパティを変化させる方法は無いでしょうか?
0694デフォルトの名無しさん2014/10/20(月) 23:18:27.54ID:j16eCxP/
うっわー!
クラスメソッドとかクラス変数とかあったんかぁぁぁぁい!!
全部インスタンスにコピーしてたから無駄にメモリ食ってたのか。
超書き直しの予感、、
0695デフォルトの名無しさん2014/10/21(火) 00:15:52.38ID:kcqU4m6G
クラス変数は無いよ。
てかあまり関係無いような。まあ、なんでもグローバルよりいいかもしれないが
0696デフォルトの名無しさん2014/10/21(火) 08:10:16.18ID:FfE943pZ
Swiftってクラス変数ないの?
Objective-Cではファイルスコープのstatic変数で代用してたけど、Swiftにはそもそもファイルスコープなんてあったっけ?
0697デフォルトの名無しさん2014/10/21(火) 08:54:24.52ID:3Czsh1Y9
クラス変数は not yet supported ってエラー
ランタイムがいつか対応するんじゃねーの?
0698デフォルトの名無しさん2014/10/21(火) 09:08:58.78ID:KtwB32hV
class A {
// stored variable のクラス変数は未サポート
// class var a = 1 // Class variables not yet supported
// class let b = 2 // Class variables not yet supported

// computed variable ならクラス変数使える
class var c: Int { return 3 }

private struct StaticVal {
// 構造体なら stored variable でも static variable が使える
static var val = 4
}
// computed クラス変数からプライベートなインナー構造体の static 変数にアクセスすることで
// 擬似的に stored クラス変数を実現できる
class var d: Int {
get { return StaticVal.val }
set { StaticVal.val = newValue }
}
}

println(A.c) // 3
println(A.d) // 4
A.d = 99
println(A.d) // 99
0699デフォルトの名無しさん2014/10/21(火) 09:49:02.79ID:XloY8IdL
structならクラス変数が使えて、privateにすればファイルスコープになるのか。なるほどー。
それにしても、publicやprivateの意味とか、他の言語と微妙に違うのが気になる。
0700デフォルトの名無しさん2014/10/21(火) 10:30:56.38ID:edTsuMEA
クラス変数エラー出たからもう、viewControllerに全部出すもん。
時間ないもん。
0701デフォルトの名無しさん2014/10/21(火) 11:07:32.18ID:PiNv6KYl
Xcode6.1 AppStoreにきてる
一部の.storyboardが開けなくなってたバグも治ってる
0702デフォルトの名無しさん2014/10/21(火) 12:26:37.43ID:3Czsh1Y9
enum rawValue と nilを返すコンストラクタの仕様変更で朝からビルドエラー潰し
もう嫌になっちゃうネ!
0703デフォルトの名無しさん2014/10/21(火) 14:27:08.90ID:KtwB32hV
Failable initializerとか嫌どころか待ってましたじゃん
仕様変更に喜びを感じられるぐらいじゃないと、いまSwiftを使うべきじゃないだろ
0704デフォルトの名無しさん2014/10/21(火) 17:05:12.94ID:0UW3NQgi
今更感がね、、、
それを回避する(バッド)ノウハウを Apple が指定してなかったっけ?
0705デフォルトの名無しさん2014/10/21(火) 17:08:03.70ID:PHCekvw0
>>701
それは8.0のシミュレーター入ってる?
betaの8.1のシミュ全然使えなかったけどどう?
0706デフォルトの名無しさん2014/10/21(火) 21:15:42.74ID:PiNv6KYl
>>705
基本実機で動かしてるから、シミュレーターはそんなに使っていないけど
ロジックテストは8.1のシュミレーターで普通に通ってますわ。アプリの基本機能もとりあえず問題ないっぽい
0707デフォルトの名無しさん2014/10/21(火) 22:44:09.89ID:xrLiD/wR
tnx
0708デフォルトの名無しさん2014/10/21(火) 23:01:43.61ID:7WAeJlTS
で、Objective-Cでよくね?っていう
0709デフォルトの名無しさん2014/10/21(火) 23:19:43.11ID:XEHUXI0F
質問しようと新Mac板で探したらあっちは雑談みたいな感じでしたので、関連と貼られてたこちらで質問します。
Swift初心者で、画像処理系を学ぶ延長線上でPhotoExtensionを勉強しているのですが、画像保存が出来ずに困っています。
参考として顔写真にジェントルな髭を生やすこのサンプルを使ってるのですが、エラーが出てしまいます。
http://blog.elpassion.com/el-mustache/
調べた所、IImageJPEGRepresentationに画像データが入ってないためnilエラーが返ってきてたようなのですが、以下のコードのどのあたりを直すといいのでしょうか?

・製作中のExtension.swiftのfunc finish内
let output = PHContentEditingOutput(contentEditingInput: self.input) // 編集済画像参照
let saveImgData = UIImageJPEGRepresentation(self.image, 0.1) //JPEGとして保存
var error: NSErrorPointer = nil
NSLog("%@", output.renderedContentURL) //参照した画像のアドレスをログに出す
saveImgData?.writeToURL(output.renderedContentURL, atomically: true) //画像を保存する ←ここでoutputに入るはずのデータが入ってない


・SwiftMustaches PhotoEditorViewController.swift -> func finish-内
let output = PHContentEditingOutput(contentEditingInput: self.input)
output.adjustmentData = self.adjustment!.adjustmentData()
let fullSizeAnnotatedImageData = UIImageJPEGRepresentation(self.image, 0.9)
var error: NSError?
et success = fullSizeAnnotatedImageData.writeToURL(output.renderedContentURL, options: .AtomicWrite, error: &amp;error)
if success {
NSLog("Saved successfully")
completionHandler?(output)
}
else {
NSLog("Error when writing file: \(error)")
completionHandler?(nil)
}
0710デフォルトの名無しさん2014/10/21(火) 23:33:30.21ID:3SWr2ruD
self.image に画像はちゃんと入れてるの?
0711デフォルトの名無しさん2014/10/21(火) 23:40:06.82ID:7WAeJlTS
だめだ、おれはセミコロン依存症かもしれん…
ただの文字の羅列に見えてしまう
0712デフォルトの名無しさん2014/10/22(水) 00:27:40.92ID:YmpQT9+3
>>710
self.imageには画像入れてます。
色々と弄った所、Doneで確定は出来るんドSが、ログに
Content editing output is missing adjustment data.
が出て保存されない状態になってます。
髭サンプルにあるsuccess分岐を入れると、image savedと出たのでUIImageJPEGの部分は上手く動いてるようには見えるのですが、さっぱりわからないです・・・
0713デフォルトの名無しさん2014/10/22(水) 00:28:47.17ID:YmpQT9+3
どえすわろた
image saved -> Saved successfully ですね。

この部分です。
let success = fullSizeAnnotatedImageData.writeToURL(output.renderedContentURL, options: .AtomicWrite, error: &error)
if success {
NSLog("Saved successfully")
completionHandler?(output)
}
else {
NSLog("Error when writing file: \(error)")
completionHandler?(nil)
}
0714デフォルトの名無しさん2014/10/22(水) 17:35:15.46ID:09vRtLa/
javascriptもswiftも飽きるよな
Objective-C最高
0715デフォルトの名無しさん2014/10/22(水) 20:23:53.18ID:tMZHUzNJ
逆にobj-cはAAにしか見えないんだけど、、
swiftのグローバル変数の遅さ早くなんとかしてもらいたい。
0716デフォルトの名無しさん2014/10/22(水) 21:21:40.50ID:bv0+gz6+
グローバル変数が遅いってなんなの?あまりありえないよーな
作りが悪いのをグローバル変数のせいにしてない?
0717デフォルトの名無しさん2014/10/23(木) 03:59:06.36ID:dXJn7cDs
自分の設計が悪いのを言語のせいにするのは誰もが通る道
0718デフォルトの名無しさん2014/10/23(木) 06:58:22.43ID:QsQhyUlJ
まともな言語でも人によってはいくらでもひどい設計に出来る
0719デフォルトの名無しさん2014/10/23(木) 08:04:11.54ID:g5BlEiEq
で、なんでObjective-Cやめようとしてるの?
0720デフォルトの名無しさん2014/10/23(木) 08:16:01.95ID:KBq+arCa
そこに言語があるから

ドSの問題がよく分からんな
swiftとは関係ない所でこけてるんだろうが Extension の試験がてら組んでみるか
0721デフォルトの名無しさん2014/10/23(木) 11:46:39.83ID:N4gIq5Wp
Scalaのcase classのcopyみたいなのほしい・・・

あとEquatableとかComparableとか、フィールド型から自動導出してくれないかなあ(Haskellのderivingみたいな)
型安全のためにStringとかナマで使いたくないからラッパー型作るけど、その度に大量のboilerplate書くはめに
0722デフォルトの名無しさん2014/10/23(木) 14:12:37.11ID:V4+/NqZk
classの外に変数出して参照すればわかる。
10個のボタンで処理に1秒かかる。
0723デフォルトの名無しさん2014/10/23(木) 17:13:23.61ID:KRp/epXc
Appleの新言語「Swift」をオープンソースで実装するプロジェクトがスタート、GNUStepの開発者も参加
http://sourceforge.jp/magazine/14/10/24/083300
0724デフォルトの名無しさん2014/10/23(木) 17:48:16.13ID:dXJn7cDs
Obj-C はランタイムとかオープンなんだから、Swift もそうすりゃ良いのに
0725デフォルトの名無しさん2014/10/23(木) 18:26:54.59ID:X8F9OQuD
開発陣はオープンも見据えているような。まあ、クック次第になるのかクックは関知せずなのか
Googleよりもって言っても何にも訴求力無いよなあ。都合の良い時にGoogleよりもMSよりもAppleよりもにしか見えなさそう
0726デフォルトの名無しさん2014/10/23(木) 18:33:23.97ID:OWRrG931
ARCがバグってるのか知らんがretain/releaseが大量に挿入されるのは治ったのか
betaの頃にバイナリをotool -tVして使う気が失せたのだが
0727デフォルトの名無しさん2014/10/23(木) 21:07:09.13ID:iFNisP7S
obj-cでいいよ
面白半分以外でこれを使う理由もなし
0728デフォルトの名無しさん2014/10/23(木) 22:42:54.89ID:NB0Q8hIq
WatchKit only Swiftで世の開発者の度肝を抜いて欲しい
0729デフォルトの名無しさん2014/10/23(木) 23:02:09.98ID:g5BlEiEq
AppleはObjective-Cでさえ障壁が高い側面があったのに、Swiftとかいう
完全独自言語に切り替えようとして何をかんがえてんのかね…
0730デフォルトの名無しさん2014/10/23(木) 23:22:05.72ID:XHV0GAIZ
きみはずっとあっちでC++とJava使ってればいいじゃないの
0731デフォルトの名無しさん2014/10/23(木) 23:22:28.18ID:mqPdLlLo
UITableView の dequeueReusableCellWithIdentifier メソッドを使ってObjC時代のようなセルの再利用をしたいのですがやり方がわかりません
ネットにサンプルはたくさんあるのですがどれもエラーがでます

dequeueReusableCellWithIdentifie で返ってくる値は AnyObject? 型のようなのでとりあえず as 構文を使って UITableViewCell? としてキャストしてやります

let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell?

続いてもし nil だったら cell を新しく作る ということをやります

if cell == nil {
cell! = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
}

return cell

このようにやるとビルドは通るのですが実行時にエラーとなります
どこが間違っているのかわかりません
0732デフォルトの名無しさん2014/10/23(木) 23:23:30.94ID:mqPdLlLo
return cell → return cell!

訂正
0733デフォルトの名無しさん2014/10/23(木) 23:35:54.84ID:g5BlEiEq
>>730
いや、せっかく言語ランキングで3位くらいまでになったんだし、
Objective-Cでいいじゃないという論旨なんだけど…。
0734デフォルトの名無しさん2014/10/24(金) 00:51:55.54ID:iM0H1WAY
完全独自言語と呼べるほど目新しい機能ないんだよなあ
0735デフォルトの名無しさん2014/10/24(金) 01:12:01.33ID:gc7aISTh
逆に不完全なものを色々詰め込んだ結果混乱の温床に
playgroundとか自分のコードが間違ってるのかplaygroundのバグなのか考えなきゃいけない時点で論外だし
0736デフォルトの名無しさん2014/10/24(金) 01:14:02.80ID:J3hM9+BR
まだよく使ってないが、ポインタ周りは逆に扱いづらくなったのか?
0737デフォルトの名無しさん2014/10/24(金) 01:30:50.53ID:z1D9cZ8M
目新しい機能がないのなら、なぜまたObjective-Cを導入したときのような
開発者の眉間にしわを寄せさせるようなことをするのだろうか…
(眉間にしわを寄せてるのは無能なおまえだけとかいう声がきこえてきそうだが)
0738デフォルトの名無しさん2014/10/24(金) 02:53:30.02ID:knrWK1Ms
すごいなNEXTSTEPからの古参らしいよ
0739デフォルトの名無しさん2014/10/24(金) 07:16:16.82ID:cK9PTyvC
>>729
ボラクルが管理しているJavaを採用したGoogleはどうなったかな?
0740デフォルトの名無しさん2014/10/24(金) 07:22:52.99ID:vbIEXmL9
どうなったの?
0741デフォルトの名無しさん2014/10/24(金) 08:30:59.61ID:S3fKdVaO
リリースされたっつーのに、全くと言っていいほど盛り上がってないなw

こりゃ、数年で消えるなコレ。
0742デフォルトの名無しさん2014/10/24(金) 08:50:15.90ID:agHk22KZ
Google が Java 採用した時点では
まだボラクル支配下ではなかったし
Google は内心 Java に見切りを付けて
Dart (ω) とか go (ω) とか脱却を考えてるみたいだし
0743デフォルトの名無しさん2014/10/24(金) 08:51:49.81ID:z1D9cZ8M
>>741
つまり実質、無理して言語変える必要ないってことだろうな…
新しい言語に挑戦しないやつはカスとか言うやつもいるけどな
そういうやつは飛びついて遊んでればいい
0744デフォルトの名無しさん2014/10/24(金) 09:51:18.19ID:w1pamadt
>>731
>if cell == nil {
>cell! = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
>}


cell! = UITable~~~
なんて書き方ないよ
cell = UITable~~~
でいいんじゃないの
0745デフォルトの名無しさん2014/10/24(金) 10:19:25.92ID:CyQs/C+j
Xcode6.0でコンパイルできたのが、Xcode6.1にしたらエラー出まくり
うんで、エラーでないように書き換えると、iOS8.0の端末で実行するとエラーになる
ここ見ると8.0から8.1でメソッドとか大量に削除されてるんだけど、全部該当箇所書き換えるしかないの?
8.0にはどう対応すんの?
頭良い人教えて
0746デフォルトの名無しさん2014/10/24(金) 10:20:20.96ID:CyQs/C+j
リンク書き忘れた
ここね
https://developer.apple.com/library/ios/releasenotes/General/iOS81APIDiffs/modules/Foundation.html
0747デフォルトの名無しさん2014/10/24(金) 11:15:58.97ID:xK4Fy7uR
Deployment Targetは8.0になってる?
こっちもXcode6.1+iOS SDK 8.1にて当該メソッドつこうてるけど普通に8.0の実機で動いてるなあ
0748デフォルトの名無しさん2014/10/24(金) 13:05:22.33ID:Yg3oGbvH
Swift になって UITableView 使ってないから適当だけど、多分こんな感じ
if let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell {
return cell
} else {
return UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
}

表記が違うだけで obj-c と手順、処理は全く同じだから、なにかswiftとしての表記方法が違うんだろうなぁ
上記で as? が常にNGで毎回作り直しにならなければ良いが
0749デフォルトの名無しさん2014/10/24(金) 13:12:14.47ID:Yg3oGbvH
>>745
俺は泣きながら書き換えた
ランタイムがメソッドの増減に応じて更新されてるのだろう、iOS7.xや8.0でも普通に動いたぞ
0750デフォルトの名無しさん2014/10/24(金) 15:21:54.21ID:CyQs/C+j
>>747 >>749
実際に簡単にテストした

Xcode6.1でSingle View Applicationで新規プロジェクト(もちろんLanguageはSwift)作成
Deployment Targetを8.0に変更
最初からあるViewControllerクラスのviewDidLoad内に以下記載(Xcode6.0で問題無いコード)
 var credential:NSURLCredential = NSURLCredential.credentialWithUser("hoge", password: "hoge", persistence: NSURLCredentialPersistence.None)
この時点でビルドエラーの警告が出る。
以下に書き直す
 var credential:NSURLCredential = NSURLCredential(user: "hoge", password: "hoge", persistence: NSURLCredentialPersistence.None)
エラー無くビルド成功

という感じ
ちなみに昨日はダメだったのに今日試したら8.0でも動いた
Deployment Targetが8.0になってなかったのもしれない


>>747さんはNSURLCredential.credentialWithUserを使用してもXcode6.1で問題無くビルドできる?
0751デフォルトの名無しさん2014/10/24(金) 16:02:56.99ID:xK4Fy7uR
>>750
私は今はSDK8.1をつかっているから、リストにあるとおりそのメソッドは削除されていてコンパイルは通らない
Failiable(SDK8.1)版ではコンパイルは通り、実行もうまくいってるように見える

Deployment Targetが8.1になっていると、8.0上で実行した場合同じFailiable版でもABIが違う?せいで実行時にエラーになるんじゃないかなぁ
で、再現しようと思ってDeployment Target=8.1で8.0の実機にデプロイしようとしたけど、そもそも選択できなくなっている・・・
0752デフォルトの名無しさん2014/10/24(金) 16:40:04.27ID:w1pamadt
萩原本キタ━(゚∀゚)━!
0753デフォルトの名無しさん2014/10/24(金) 16:44:25.27ID:vbIEXmL9
お、ホントだ。しかし出るの早くないかね。
http://www.amazon.co.jp/dp/4797380497/
0754デフォルトの名無しさん2014/10/24(金) 20:17:56.06ID:XW+WzFik
目次を見る限り、公式本以上のことが書かれてるようには思えんな
むしろ、クラスライブラリとの連携の方に力を注いでくれれば
0755デフォルトの名無しさん2014/10/26(日) 18:21:23.17ID:jWON/NkI
英語読めない&英語読みたくない怠け者向けだろ
普通の志高いエンジニアなら、公式ドキュメントどんどん読んでコーディングしてるわ
0756デフォルトの名無しさん2014/10/26(日) 20:50:01.38ID:7LQmDnVF
公式は全部読んだがSwift縛りの案件でもない限り実際にプロジェクトで使う機会はまだ先になりそうだわ
0757デフォルトの名無しさん2014/10/27(月) 00:49:52.53ID:np5BidJo
たのしいSwiftプログラミング
http://www.amazon.co.jp/dp/4861009499/

今Amazonのベストセラー1位になってる。
やっぱり良い本は売れるのかな?
0758デフォルトの名無しさん2014/10/27(月) 00:59:09.72ID:mdIzEfWs
こういうやつの初版ってだいたいミスが多いから少し様子見するか
英語ドキュメント読んで適当に勉強した方がいいと自分は思う
0759デフォルトの名無しさん2014/10/27(月) 01:33:09.20ID:HnvZBFr+
>>757
宣伝露骨過ぎるぞ
0760デフォルトの名無しさん2014/10/27(月) 03:04:19.52ID:Q4o9MO++
>>757
Objective-Cをやっててその著者を知らなければモグリってレベルの人だからな。売れて当然。
0761デフォルトの名無しさん2014/10/27(月) 04:05:47.75ID:dBZ7xcRa
>>757 >>760
どうして著者名のリンク先クリックすると
エロ本ばっかり出て来るのはなぜ
0762デフォルトの名無しさん2014/10/27(月) 08:39:46.62ID:vN2Fe9bL
>>757
この手の書籍で初版本なんて買う価値ないよ。

まだ、こなれてすらいない上に、仕様変更もバリバリあるっつーのに。
■ このスレッドは過去ログ倉庫に格納されています