Swift嚥C囂冱住札園殻
<貧匯准
和匯准>
恬葎匯嶽辛嚥 Objective-C 屢札距喘議囂冱?Swift 匆醤嗤匯乂嚥 C 囂冱議窃侏才蒙來?泌惚低議旗鷹嗤俶勣?Swift 匆戻工阻才械需議 C 旗鷹潤更詞栽園殻議園殻圭塀。
斤噐歌方?聞喘參和啌符?
斤噐卦指窃侏?延楚才歌方窃侏議謹蚊肝峺寞?聞喘參和啌符?
斤噐窃?class?窃侏?聞喘參和啌符?
泌惚艇崧宸劔蕗苧阻匯倖痕方?
泌惚艇宸劔協吶阻匯倖痕方?
//Swift
var x: Float = 0.0, y: Int = 0
var p: CMutablePointer<Float> = nil, q: CMutablePointer<Int> = nil
var a: Float[] = [1.0, 2.0, 3.0], b: Int = [1, 2, 3]
takesAMutableVoidPointer(nil)
takesAMutableVoidPointer(p)
takesAMutableVoidPointer(q)
takesAMutableVoidPointer(&x)
takesAMutableVoidPointer(&y)
takesAMutableVoidPointer(&a)
takesAMutableVoidPointer(&b)
廣吭?宸倖双燕短嗤淫根方怏。
泌惚艇宸劔協吶阻匯倖痕方?
児云方象窃侏
Swift 戻工阻匯乂才 C 囂冱議児云窃侏泌char?int?float?double吉勺議 Swift 児云方象窃侏。隼遇?宸乂 Swift 議宰伉児云窃侏岻寂旺音嬬咨塀議屢札廬算?泌 Int。咀緩?峪嗤低議旗鷹苧鳩勣箔万断扮壅聞喘宸乂窃侏?遇 Int 辛參壓販採低?聞喘万議扮昨聞喘。| C 窃侏 | Swift 窃侏 |
|---|---|
| bool | CBool |
| char, signed char | CChar |
| unsigned char | CUnsignedChar |
| short | CShort |
| unsigned short | CUnsignedShort |
| int | CInt |
| unsigned int | CUnsignedInt |
| long | CLong |
| unsigned long | CUnsignedLong |
| long long | CLongLong |
| unsigned long long | CUnsignedLongLong |
| wchar_t | CWideChar |
| char16_t | CChar16 |
| char32_t | CChar32 |
| float | CFloat |
| double | CDouble |
旦訟
Swift 哈序阻喘崎NS_ENUM栖炎芝議販採 C 欠鯉議旦訟窃侏。宸吭龍彭涙胎旦訟峙頁壓狼由崇尺珊頁壓徭協吶議旗鷹嶄協吶議?輝麿断擬秘欺 Swift 扮?麿断議念弸兆各繍瓜舜僅。箭泌?心宸倖 Objective-C 旦訟?
//Objective-C
typedef NS_ENUM(NSInteger, UITableViewCellStyle) {
UITableViewCellStyleDefault,
UITableViewCellStyleValue1,
UITableViewCellStyleValue2,
UITableViewCellStyleSubtitle
};
壓 Swift 嶄宸劔栖糞孖?
//Swift
enum UITableViewCellStyle: Int {
case Default
case Value1
case Value2
case Subtitle
}
輝艇俶勣峺?匯倖旦訟峙扮?聞喘參泣?.?蝕遊議旦訟兆各?//Swift let cellStyle: UITableViewCellStyle = .DefaultSwift 匆哈序阻炎嗤NS_OPTIONS崎僉?。遇僉?議佩葎窃貌噐哈序議旦訟?僉?珊辛參屶隔匯乂了荷恬?泌 ??| 才 ?。壓 Objective-C 嶄?低喘匯倖腎議僉?譜崔炎幣冴葎巣?0?。壓 Swift 嶄?聞喘 nil旗燕短嗤販採僉?。
峺寞
Swift 勝辛嬬閲窒斑艇岷俊恵諒峺寞。隼遇?輝艇俶勣岷俊荷恬坪贋議扮昨?Swift 匆葎艇戻工阻謹嶽峺寞窃侏。和中議燕聞喘 Type 恬葎媼了憲窃侏兆各栖燕幣囂隈議啌符。斤噐歌方?聞喘參和啌符?
| C 鞘隈 | Swift 鞘隈 |
|---|---|
| const void * | CConstVoidPointer |
| void * | CMutableVoidPointer |
| const Type * | CConstPointer<Type> |
| Type * | CMutablePointer<Type> |
斤噐卦指窃侏?延楚才歌方窃侏議謹蚊肝峺寞?聞喘參和啌符?
| C 鞘隈 | Swift 鞘隈 |
|---|---|
| void * | COpaquePointer |
| Type * | UnsafePointer<Type> |
斤噐窃?class?窃侏?聞喘參和啌符?
| C 鞘隈 | Swift 鞘隈 |
|---|---|
| Type * const * | CConstPointer<Type> |
| Type * __strong * | CMutablePointer<Type> |
| Type ** | AutoreleasingUnsafePointer<Type> |
C 辛延峺寞
輝匯倖痕方瓜蕗苧葎俊鞭CMutablePointer<Type>歌方扮?宸倖痕方辛參俊鞭和双販採匯倖窃侏恬葎歌方?- nil?恬葎腎峺寞勧秘
- 匯倖CMutablePointer<Type>窃侏議峙
- 匯倖荷恬方頁 Type 窃侏議恣峙議補秘補竃燕器塀?恬葎宸倖恣峙議坪贋仇峽勧秘
- 匯倖補秘補竃 Type[] 峙?恬葎匯倖方怏議軟兵峺寞勧秘?旺拝万議伏凋巓豚繍壓宸倖距喘豚寂瓜决海
泌惚艇崧宸劔蕗苧阻匯倖痕方?
//Swift
func takesAMutablePointer(x: CMutablePointer<Float>) { /*...*/ }
椎担艇辛參聞喘參和販採匯嶽圭塀栖距喘宸倖痕方?
//Swift var x: Float = 0.0 var p: CMutablePointer<Float> = nil var a: Float[] = [1.0, 2.0, 3.0] takesAMutablePointer(nil) takesAMutablePointer(p) takesAMutablePointer(&x) takesAMutablePointer(&a)輝痕方瓜蕗苧聞喘匯倖CMutableVoidPointer歌方?椎担宸倖痕方俊鞭販採才CMutablePointer<Type>屢貌窃侏議Type荷恬方。
泌惚艇宸劔協吶阻匯倖痕方?
//Swift
func takesAMutableVoidPointer(x: CMutableVoidPointer) { /* ... */ }
椎担艇辛參聞喘參和販採匯嶽圭塀栖距喘宸倖痕方?//Swift
var x: Float = 0.0, y: Int = 0
var p: CMutablePointer<Float> = nil, q: CMutablePointer<Int> = nil
var a: Float[] = [1.0, 2.0, 3.0], b: Int = [1, 2, 3]
takesAMutableVoidPointer(nil)
takesAMutableVoidPointer(p)
takesAMutableVoidPointer(q)
takesAMutableVoidPointer(&x)
takesAMutableVoidPointer(&y)
takesAMutableVoidPointer(&a)
takesAMutableVoidPointer(&b)
C 械峺寞
輝匯倖痕方瓜蕗苧葎俊鞭CConstPointer<Type>歌方扮?宸倖痕方辛參俊鞭和双販採匯倖窃侏恬葎歌方?- nil?恬葎腎峺寞勧秘
- 匯倖CMutablePointer<Type>, CMutableVoidPointer, CConstPointer<Type>, CConstVoidPointer, 賜宀壓駅勣秤趨和廬算撹CConstPointer<Type>議AutoreleasingUnsafePointer<Type>峙
- 匯倖荷恬方頁 Type 窃侏議恣峙議補秘補竃燕器塀?恬葎宸倖恣峙議坪贋仇峽勧秘
- 匯倖Type[]方怏峙?恬葎匯倖方怏議軟兵峺寞勧秘?旺拝万議伏凋巓豚繍壓宸倖距喘豚寂瓜决海
//Swift
func takesAConstPointer(x: CConstPointer<Float>) { /*...*/ }
椎担艇辛參聞喘參和販採匯嶽圭塀栖距喘宸倖痕方?
//Swift var x: Float = 0.0 var p: CConstPointer<Float> = nil takesAConstPointer(nil) takesAConstPointer(p) takesAConstPointer(&x) takesAConstPointer([1.0, 2.0, 3.0])輝痕方瓜蕗苧聞喘匯倖CConstVoidPointer歌方?椎担宸倖痕方俊鞭販採才CConstPointer<Type> 屢貌窃侏議Type荷恬方。  泌惚艇宸劔協吶阻匯倖痕方?
//Swift 
func takesAConstVoidPointer(x: CConstVoidPointer) { /* ... */ }
椎担艇辛參聞喘參和販採匯嶽圭塀栖距喘宸倖痕方?
//Swift var x: Float = 0.0, y: Int = 0 var p: CConstPointer<Float> = nil, q: CConstPointer<Int> = nil takesAConstVoidPointer(nil) takesAConstVoidPointer(p) takesAConstVoidPointer(q) takesAConstVoidPointer(&x) takesAConstVoidPointer(&y) takesAConstVoidPointer([1.0, 2.0, 3.0]) takesAConstVoidPointer([1, 2, 3])
徭強瞥慧音芦畠峺寞
輝匯倖痕方瓜蕗苧葎俊鞭AutoreleasingUnsafePointer<Type>歌方扮?宸倖痕方辛參俊鞭和双販採匯倖窃侏恬葎歌方?- nil?恬葎腎峺寞勧秘
- 匯倖AutoreleasingUnsafePointer<Type>峙
- 凪荷恬方頁圻兵議?鹸崙欺匯倖匝扮議短嗤侭嗤宀議産喝曝議匯倖補秘補竃燕器塀?乎産喝曝議仇峽勧弓公距喘?旺卦指扮?産喝曝嶄議峙紗墮?隠贋?旺嶷仟蛍塘欺荷恬方。
廣吭?宸倖双燕短嗤淫根方怏。
泌惚艇宸劔協吶阻匯倖痕方?
//Swift
func takesAnAutoreleasingPointer(x: AutoreleasingUnsafePointer<NSDate?>) { /* ... */ }
椎担艇辛參聞喘參和販採匯嶽圭塀栖距喘宸倖痕方?
//Swift var x: NSDate? = nil var p: AutoreleasingUnsafePointer<NSDate?> = nil  takesAnAutoreleasingPointer(nil) takesAnAutoreleasingPointer(p) takesAnAutoreleasingPointer(&x)廣吭?C 囂冱痕方峺寞短嗤瓜 Swift 哈序。
畠蕉械楚
壓 C 才 Objective-C 囂冱坿猟周嶄協吶議畠蕉械楚氏徭強仇瓜 Swift 園咎哈序旺恂葎 Swift 議畠蕉械楚。圓侃尖峺綜
Swift 園咎匂音淫根圓侃尖匂。函遇旗岻議頁?万割蛍旋喘阻園咎扮奉來?伏撹塘崔?才囂冱蒙來栖頼撹屢揖議孔嬬。咀緩?Swift 短嗤哈序圓侃尖峺綜。酒汽崎
壓 C 才 Objective-C?艇宥械聞喘議#define峺綜協吶議匯倖崎械方?壓 Swift?艇辛參聞喘畠蕉械楚栖旗紋。箭泌?匯倖畠蕉協吶#define FADE_ANIMATION_DURATION 0.35?壓 Swift 辛參聞喘let FADE_ANIMATION_DURATION = 0.35栖厚挫議燕峰。喇噐酒汽議喘噐協吶械楚議崎氏瓜岷俊瓜啌符撹 Swift 畠蕉楚?Swift 園咎匂氏徭強哈序壓 C 賜 Objective-C 坿猟周嶄協吶議酒汽崎。鹸墫崎
壓 C 才 Objective-C 嶄聞喘議鹸墫崎壓 Swift 嶄旺短嗤嚥岻斤哘議協吶。鹸墫崎頁椎乂音喘栖協吶械楚議崎?遇頁喘栖協吶淫根弌凄催???痕方議崎。艇壓 C 才 Objective-C 聞喘鹸墫議崎頁喘栖閲窒窃侏殊臥議尫崙才屢揖旗鷹議嶷鹸斥強。隼遇?崎匆氏恢伏Bug才嶷更議是佃。壓 Swift 嶄低辛參岷俊聞喘痕方才刑侏栖器欺揖劔議丼惚。咀緩?壓 C 才 Objective-C 坿猟周嶄協吶議鹸墫崎壓 Swift 頁音嬬聞喘議。園咎塘崔
Swift 旗鷹才 Objective-C 旗鷹參音揖議圭塀序佩訳周園咎。Swift 旗鷹辛參功象伏撹塘崔議得勺塘序佩嗤訳周議園咎。伏撹塘崔淫凄 true 才 false 忖中峙?凋綜佩炎崗?才和燕嶄議峠岬霞編痕方。艇辛參聞喘-D <?Flag?>峺協凋綜佩炎崗。| 痕方 | 嗤丼歌方 |
|---|---|
| os() | OSX, iOS |
| arch() | x86_64, arm, arm64, i386 |
廣吭?arch(arm) 議伏撹塘崔音氏葎64了 arm 譜姥卦指true?輝旗鷹塰佩壓葎32了議 ios 庁亭匂匂扮?arch(i386) 議伏撹塘崔卦指true。匯倖酒汽議訳周園咎俶勣參和旗鷹鯉塀?
#if build configuration statements #else statements #endif匯倖喇巣倖賜謹倖嗤丼議 Swift 囂鞘蕗苧議statements?辛參淫凄燕器塀?囂鞘才陣崙送囂鞘。艇辛參耶紗駆翌議更秀塘崔勣箔?訳周園咎傍苧喘 && 才 | | 荷恬憲參式 ? 荷恬憲?耶紗訳周陣崙翠喘 ?elseif?
#if build configuration && !build configuration statements #elseif build configuration statements #else statements #endif嚥 C 囂冱園咎匂議訳周園咎屢郡?Swift 訳周園咎囂鞘駅倬頼畠頁徭淫根才囂隈嗤丼議旗鷹翠。宸頁咀葎 Swift 旗鷹軸聞短嗤瓜園咎?匆勣畠何序佩囂隈殊臥。
<貧匯准
和匯准>