■ このスレッドは過去ログ倉庫に格納されています
let s: プログラミング言語? = Swift[2]
- 1 :名称未設定:2014/08/23(土) 09:55:25.03 ID:vQdcSMFci.net
- Appleの新言語Swiftについて語りましょう
Apple Developer
ttps://developer.apple.com/swift/
Welcome to Swift
ttps://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
書籍iBooks:
The Swift Programming Language
ttps://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
Using Swift with Cocoa and Objective-C
ttps://itunes.apple.com/jp/book/using-swift-cocoa-objective/id888894773?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
ttps://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
ttps://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Swift Standard Library Reference
ttps://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/
Swift Blog
ttps://developer.apple.com/swift/blog/
Resources (Xcode 6が無料でダウンロードできる)
ttps://developer.apple.com/swift/resources/
関連スレ
Swift part3
http://peace.2ch.net/test/read.cgi/tech/1406083608/
前スレ
プログラミング言語Swift
http://anago.2ch.net/test/read.cgi/mac/1401736921/
- 861 :名称未設定:2015/07/21(火) 21:30:26.83 ID:Pf7RPCtF0.net
- そんなことは言ってない
Informal protocolみたいなズボラな方法よりSwiftに合ったもっといい方法があるし
ObjCでもObjC 2.0以降はほとんど使われなくなってる古い手法
Informal protocolはただのNSObjectのカテゴリだから、SwiftでもNSObjectのextension書けば同じこと
でもそんなことする意味はまったくない
- 862 :名称未設定:2015/07/22(水) 07:34:53.39 ID:bv8teojX0.net
- >>858
推奨はされてないが使えるってことかな
objc の informal protocol = swift の optional protocol(@objc付与必須)でおk?
- 863 :名称未設定:2015/07/22(水) 08:14:14.62 ID:t/e2AFT+0.net
- >>861
852です。
Swiftでinformal protocol準拠のクラスを定義するには、informal protocol
の実装部分はobjcで書いて、@objcコンパイル指令を使ってintormal protocol
をSwiftソースへ埋め込めば良い。
って解釈でOKでっしゃろか?
- 864 :名称未設定:2015/07/22(水) 08:26:30.22 ID:t/e2AFT+0.net
- protocol Mochi {
func sayHello() -> String
}
class Piyo: Mochi {
func sayGoodby() -> String {
return "By, Piyopiyo"
}
}
上記をコンパイルすると、note: protocol requires function sayHello()
と言って怒られます。
@objcコンパイル指令を使えば、怒られずに済む訳ですよねぇ。
けど。。。@objcコンパイル指令なんて、使った事無いっす。
- 865 :名称未設定:2015/07/22(水) 10:40:07.81 ID:9Wr60tM+0.net
- >>862,862
細かく言うと違う
@protocolは元々あったのねん。でも、全て実装必須
delegateのような実装してもいいし実装してもいくないのを実現する(他にも理由があるだろうが)のに、じゃ、@interface NSObject (Hoge)でインターフェースだけ定義してっていうのが、informal protocol
protocol に対して informal protocol だろう。protocolを使う時点でInformal protocol じゃないだろう
protocolにoptionalをつけたら、informal protocolと同じように(また、なんでもかんでもNSObjectになんて不細工で無く)、実現できたにすぎない
元々の
> CALayerDelegateをAPI Referenceで見ていて出てきたんだけど、informal protocol
も、CALayerDelegate が「まさしく」 informal protocol だからだよ。ヘッダー見てみ
- 866 :名称未設定:2015/07/22(水) 10:45:28.36 ID:9Wr60tM+0.net
- >>863,863
optionalなprotocolを(@objc付きだろうが)Swiftだけで実装するには、
http://tea-leaves.jp/swift/content/プロトコル
らしいよ。ちたーググってみよう。「informal protocol」もたぶんあるよ
- 867 :名称未設定:2015/07/22(水) 11:07:46.33 ID:t/e2AFT+0.net
- >>866
THX
できたぁー。
import Foundation
@objc protocol Mochi {
optional func sayHello() -> String
}
class Piyo: Mochi {
func sayGoodby() -> String {
return "Bye, Piyopiyo"
}
}
let a = Piyo()
print(a.sayGoodby())
コンパイラがrequires function sayHello()って言わなくなった。すごい。
- 868 :名称未設定:2015/07/22(水) 11:12:02.95 ID:t/e2AFT+0.net
- 866です
環境はXcode7 beta1 + Swift2.0っす。
- 869 :名称未設定:2015/07/22(水) 11:40:14.88 ID:MPVI/U/M0.net
- 結局ここに落ち着くわなw
長々講釈たれてたが@objcで強引にobj-c機能をswiftに持ってくるが正解
swiftが静的だからとか関係なく、気分悪いから使わない文法にしただけで互換のために使えなくもない
ただ、わざわざswiftでドロップしたロジックを使うのは好ましくはない
- 870 :名称未設定:2015/07/22(水) 16:48:23.11 ID:t/e2AFT+0.net
- @で始まるヤツは、アトリビュートっていうのね。
#pragmaとかのコンパイル指令と同類なのかと勘違い
しちゃったわぁ。
総レス数 982
220 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★