壓匯倖垢殻嶄揖扮聞喘Swift才Objective-C
<貧匯准
和匯准>
Swift 嚥 Objective-C 議惹否嬬薦聞低辛參壓揖匯倖垢殻嶄揖扮聞喘曾嶽囂冱。低辛參喘宸嶽出恂 mix and match 議蒙來栖蝕窟児噐詞栽囂冱議哘喘?辛參喘 Swfit 議恷仟蒙來糞孖哘喘議匯何蛍孔嬬?旺涙血仇旺秘厮嗤議 Objective-C 議旗鷹嶄。
詞栽囂冱議垢恬送殻峪嗤匯泣泣曝艶?宸函畳噐低頁壓亟哘喘珊頁亟崇尺。和中宙峰阻噸宥議喘曾嶽囂冱壓匯倖 target 嶄擬秘庁侏議秤趨?朔偬嫗准氏嗤厚謹聾准。
泌惚低揖吭?Xcode 氏壓坿猟周幹秀議揖扮伏撹遊猟周?旺喘 product 議庁翠兆紗貧 -Bridging-Header.h 凋兆。購噐 product 議庁翠兆?峋需 Naming Your Product Module。
低哘乎園辞宸倖遊猟周栖斤 Swift 羽其竃 Objective-C 旗鷹。
2) 鳩隠壓 Build Settings 嶄 Objective-C 播俊遊猟周議 build setting 頁児噐 Swfit 園咎匂?軸 Code Generation 根嗤遊猟周議揃抄。宸倖揃抄駅倬頁遊猟周徭附議揃抄?遇音頁万侭壓議朕村。
宸倖揃抄哘乎頁低垢殻議屢斤揃抄?窃貌 Info.plist 壓 Build Settings 嶄峺協議揃抄。壓寄謹方秤趨和?低音俶勣俐個宸倖譜崔。
壓宸倖播俊遊猟周嶄双竃議侭嗤 public 議 Objective-C 遊猟周脅氏斤 Swift 辛需。岻朔輝念 target 議侭嗤 Swift 猟周脅辛參聞喘宸乂遊猟周嶄議圭隈?音俶勣販採 import 囂鞘。喘 Swift 囂隈聞喘宸乂 Objective-C 旗鷹?祥崧聞喘狼由徭揮議 Swift 窃匯劔。
低音俶勣恂販採並秤栖伏撹宸倖遊猟周?峪俶勣繍万擬秘欺低議 Objective-C 旗鷹栖聞喘万。廣吭宸倖遊猟周嶄議 Swift 俊笥淫根阻万侭聞喘欺議侭嗤 Objective-C 窃侏。泌惚低壓 Swift 旗鷹嶄聞喘低徭失議 Objective-C 窃侏?鳩隠枠繍斤哘議 Objective-C 遊猟周擬秘欺低議 Swift 旗鷹嶄?隼朔嘉繍 Swift 徭強伏撹議遊猟周擬秘欺 Objective-C .m 坿猟周嶄栖恵諒 Swift 旗鷹。
喘和中議囂隈繍崇尺擬秘欺音揖 target 議 Swift 猟周嶄?
低辛參恵諒 Swift 窃賜亅咏嶄喘 @Objective-C attribute 炎芝狛叫廉?峪勣万才 Objective-C 惹否。音淫凄匯和宸乂 Swift 鏡嗤議蒙來?
箭泌揮嗤袈侏窃侏恬葎歌方?賜宀卦指圷怏議圭隈音嬬壓 Objective-C 嶄聞喘。
葎阻閲窒儉桟哈喘?音勣繍 Swift 旗鷹擬秘欺 Objective-C 遊猟周嶄。徽頁低辛參壓 Objective-C 遊猟周嶄念?蕗苧?forward declare?匯倖 Swift 窃栖聞喘万?隼遇?廣吭音嬬壓 Objective-C 嶄写覚匯倖 Swift 窃。
低辛參公 product 庁翠兆戻工匯倖徭協吶議兆各?Xcode 氏喘宸倖兆各栖凋兆播俊議才徭強伏撹議遊猟周。低峪俶勣壓俐個壓build setting 嶄議 Product Module Name 軸辛。
Mix and Match 古峰
Objective-C 才 Swift 猟周辛參壓匯倖垢殻嶄旺贋?音砿宸倖垢殻圻云頁児噐 Objective-C 珊頁 Swift。低辛參岷俊吏孖嗤垢殻嶄酒汽仇耶紗総匯嶽囂冱議坿猟周。宸嶽徭隼議垢恬送聞誼幹秀詞栽囂冱議哘喘賜崇尺 target?嚥喘汽鏡匯嶽囂冱扮匯劔酒汽。詞栽囂冱議垢恬送殻峪嗤匯泣泣曝艶?宸函畳噐低頁壓亟哘喘珊頁亟崇尺。和中宙峰阻噸宥議喘曾嶽囂冱壓匯倖 target 嶄擬秘庁侏議秤趨?朔偬嫗准氏嗤厚謹聾准。
DAG_2x.png
壓揖倖哘喘議 target 嶄擬秘
泌惚低壓亟詞栽囂冱議哘喘?辛嬬俶勣喘 Swift 旗鷹恵諒 Objective-C 旗鷹?賜宀郡岻。和中議送殻宙峰阻壓掲崇尺 target 嶄議哘喘。繍 Objective-C 擬秘 Swift
壓匯倖哘喘議 target 嶄擬秘匯乂 Objective-C 猟周工 Swift 旗鷹聞喘扮?低俶勣卆正嚥 Objective-C 議播俊遊猟周?bridging header?栖羽其公 Swift。輝低耶紗 Swift 猟周欺孖嗤議 Objective-C 哘喘?賜郡岻?扮?Xcode 氏徭強幹秀宸乂遊猟周。
bridgingheader_2x.png
泌惚低揖吭?Xcode 氏壓坿猟周幹秀議揖扮伏撹遊猟周?旺喘 product 議庁翠兆紗貧 -Bridging-Header.h 凋兆。購噐 product 議庁翠兆?峋需 Naming Your Product Module。
低哘乎園辞宸倖遊猟周栖斤 Swift 羽其竃 Objective-C 旗鷹。
壓揖匯 target 嶄繍 Objective-C 旗鷹擬秘欺 Swift 嶄
1) 壓 Objective-C 播俊遊猟周嶄?import 販採低?羽其公 Swift 議遊猟周?箭泌?// OBJECTIVE-C #import "XYZCustomCell.h" #import "XYZCustomView.h" #import "XYZCustomViewController.h"
2) 鳩隠壓 Build Settings 嶄 Objective-C 播俊遊猟周議 build setting 頁児噐 Swfit 園咎匂?軸 Code Generation 根嗤遊猟周議揃抄。宸倖揃抄駅倬頁遊猟周徭附議揃抄?遇音頁万侭壓議朕村。
宸倖揃抄哘乎頁低垢殻議屢斤揃抄?窃貌 Info.plist 壓 Build Settings 嶄峺協議揃抄。壓寄謹方秤趨和?低音俶勣俐個宸倖譜崔。
壓宸倖播俊遊猟周嶄双竃議侭嗤 public 議 Objective-C 遊猟周脅氏斤 Swift 辛需。岻朔輝念 target 議侭嗤 Swift 猟周脅辛參聞喘宸乂遊猟周嶄議圭隈?音俶勣販採 import 囂鞘。喘 Swift 囂隈聞喘宸乂 Objective-C 旗鷹?祥崧聞喘狼由徭揮議 Swift 窃匯劔。
// SWIFT let myCell = XYZCustomCell() myCell.subtitle = "A custom cell"
繍 Swift 擬秘 Objective-C
? Objective-C 嶄擬秘Swift 旗鷹扮?低卆正 Xcode 伏撹議遊猟周栖? Objective-C 羽其 Swift 旗鷹。宸頁徭強伏撹 Objective-C 遊猟周?万淫根阻低議 target 嶄侭嗤 Swift 旗鷹嶄協吶議俊笥。辛參委宸倖 Objective-C 遊猟周心恬 Swift 旗鷹議 umbrella header。万參 product 庁翠兆紗 -Swift.h 栖凋兆。購噐 product 議庁翠兆?峋需Naming Your Product Module。低音俶勣恂販採並秤栖伏撹宸倖遊猟周?峪俶勣繍万擬秘欺低議 Objective-C 旗鷹栖聞喘万。廣吭宸倖遊猟周嶄議 Swift 俊笥淫根阻万侭聞喘欺議侭嗤 Objective-C 窃侏。泌惚低壓 Swift 旗鷹嶄聞喘低徭失議 Objective-C 窃侏?鳩隠枠繍斤哘議 Objective-C 遊猟周擬秘欺低議 Swift 旗鷹嶄?隼朔嘉繍 Swift 徭強伏撹議遊猟周擬秘欺 Objective-C .m 坿猟周嶄栖恵諒 Swift 旗鷹。
壓揖匯 target 嶄繍 Swift 旗鷹擬秘欺 Objective-C 嶄
壓屢揖 target 議 Objective-C .m 坿猟周嶄?喘和中議囂隈栖擬秘Swift 旗鷹?// OBJECTIVE-C #import "ProductModuleName-Swift.h"target 嶄販採 Swift 猟周繍氏斤 Objective-C .m 坿猟周辛需?淫凄宸倖 import 囂鞘。購噐壓 Objective-C 旗鷹嶄聞喘 Swift 旗鷹?峋需 Using Swift from Objective-C。
| 擬秘欺 Swift | 擬秘欺 Swift | |
|---|---|---|
| Swift 旗鷹 | 音俶勣import囂鞘 | #import |
| Objective-C 旗鷹 | 音俶勣import囂鞘?俶勣 Objective-C `umbrella遊猟周 | #import "Header.h" |
壓揖倖 Framework 議 target 嶄擬秘
泌惚低壓亟匯倖詞栽囂冱議崇尺?辛嬬氏貫 Swift 旗鷹恵諒 Objective-C 旗鷹?賜宀郡岻。繍 Objective-C 擬秘 Swift
勣繍匯乂 Objective-C 猟周擬秘欺揖倖崇尺 target 議 Swift 旗鷹嶄肇?低俶勣繍宸乂猟周擬秘欺 Objective-C 議 umbrella header栖工崇尺聞喘。壓揖匯 framework 嶄繍 Objective-C 旗鷹擬秘欺 Swift 嶄
鳩隠繍崇尺 target 議 Build Settings > Packaging > Defines Module 譜崔葎 Yes。隼朔壓低議 umbrella header 遊猟周嶄擬秘低?羽其公 Swift 恵諒議 Objective-C 遊猟周?箭泌?// OBJECTIVE-C #import <XYZ/XYZCustomCell.h> #import <XYZ/XYZCustomView.h> #import <XYZ/XYZCustomViewController.h>Swift 繍氏心欺侭嗤低壓 umbrella header 嶄巷蝕羽其竃栖議遊猟周?崇尺 target 嶄議侭嗤 Swift 猟周脅辛參恵諒低 Objective-C 猟周議坪否?音俶勣販採 import 囂鞘。
// SWIFT let myCell = XYZCustomCell() myCell.subtitle = "A custom cell"
繍 Swift 擬秘 Objective-C
勣繍匯乂 Swift 猟周擬秘欺揖倖崇尺議 target 議 Objective-C 旗鷹肇?低音俶勣擬秘販採叫廉欺 umbrella header 猟周?遇頁繍 Xcode 葎低議 Swift 旗鷹徭強伏撹議遊猟周擬秘欺低議 Obj .m 坿猟周肇?參宴壓 Objective-C 旗鷹嶄恵諒 Swift 旗鷹。壓揖匯 framework 嶄繍 Swift 旗鷹擬秘欺 Objective-C 嶄
鳩隠繍崇尺 target 議 Build Settings > Packaging 嶄議 Defines Module 譜崔葎 Yes。喘和中議囂隈繍 Swift 旗鷹擬秘欺揖倖崇尺 target 和議 Objective-C .m 坿猟周肇。// OBJECTIVE-C #import <ProductName/ProductModuleName-Swift.h>宸倖 import 囂鞘侭淫根議 Swift 猟周脅辛參瓜揖倖崇尺 target 和議 Objective-C .m 坿猟周恵諒。購噐壓 Objective-C 旗鷹嶄聞喘 Swift 旗鷹?峋需 Using Swift from Objective-C。
| 擬秘欺 Swift | 擬秘欺 Swift | |
|---|---|---|
| Swift 旗鷹 | 音俶勣import囂鞘 | #import |
| Objective-C 旗鷹 | 音俶勣import囂鞘?俶勣 Objective-C `umbrella遊猟周 | #import "Header.h" |
擬秘翌何 Framework
低辛參擬秘翌何崇尺?音砿宸倖崇尺頁歓 Objective-C?歓 Swift?珊頁詞栽囂冱議。import 翌何崇尺議送殻脅頁匯劔議?音砿宸倖崇尺頁喘匯嶽囂冱亟議?珊頁淫根曾嶽囂冱。輝低擬秘翌何崇尺扮?鳩隠 Build Setting > Pakaging > Defines Module 譜崔葎Yes。喘和中議囂隈繍崇尺擬秘欺音揖 target 議 Swift 猟周嶄?
// SWIFT import FrameworkName喘和中議囂隈繍崇尺擬秘欺音揖 target 議 Objective-C .m 猟周嶄?
// OBJECTIVE-C @import FrameworkName;
| 擬秘欺 Swift | 擬秘欺 Objective-C | |
|---|---|---|
| 販吭囂冱崇尺 | import FrameworkName | @import FrameworkName; |
壓 Objective-C 嶄聞喘 Swift
輝低繍 Swift 旗鷹擬秘 Objective-C 猟周岻朔?喘噸宥議 Objective-C 囂隈聞喘 Swift 窃。// OBJECTIVE-C MySwiftClass *swiftObject = [[MySwiftClass alloc] init]; [swiftObject swiftMethod];Swift 議窃賜亅咏駅倬喘 @Objective-C attribute 栖炎芝?參宴壓 Objective-C 嶄辛恵諒。宸倖 attribute 御盆園咎匂宸倖 Swift 旗鷹辛參貫 Objective-C 旗鷹嶄恵諒。泌惚低議 Swift 窃頁 Objective-C 窃議徨窃?園咎匂氏徭強葎低耶紗 @Objective-C attribute。峋需 Swift Type Compatibility。
低辛參恵諒 Swift 窃賜亅咏嶄喘 @Objective-C attribute 炎芝狛叫廉?峪勣万才 Objective-C 惹否。音淫凄匯和宸乂 Swift 鏡嗤議蒙來?
- Generics - 袈侏
- Tuples - 圷怏
- Enumerations defined in Swift - Swift 嶄協吶議旦訟
- Structures defined in Swift - Swift 嶄協吶議潤更悶
- Top-level functions defined in Swift - Swift Swift 嶄協吶議競蚊痕方
- Global variables defined in Swift - Swift 嶄協吶議畠蕉延楚
- Typealiases defined in Swift - Swift 嶄協吶議窃侏艶兆
- Swift-style variadics - Swift欠鯉辛延歌方
- Nested types - 廼耗窃侏
- Curried functions - 紳戦晒朔議痕方
箭泌揮嗤袈侏窃侏恬葎歌方?賜宀卦指圷怏議圭隈音嬬壓 Objective-C 嶄聞喘。
葎阻閲窒儉桟哈喘?音勣繍 Swift 旗鷹擬秘欺 Objective-C 遊猟周嶄。徽頁低辛參壓 Objective-C 遊猟周嶄念?蕗苧?forward declare?匯倖 Swift 窃栖聞喘万?隼遇?廣吭音嬬壓 Objective-C 嶄写覚匯倖 Swift 窃。
壓 Objective-C 遊猟周嶄哈喘 Swift 窃
宸劔念?蕗苧 Swift 窃?// OBJECTIVE-C // MyObjective-CClass.h @class MySwiftClass; @interface MyObjective-CClass : NSObject - (MySwiftClass *)returnSwiftObject; /* ... */ @end
Product 庁翠凋兆
Xcode 葎 Swift 旗鷹伏撹議遊猟周議兆各?參式 Xcode 幹秀議 Objective-C 播俊遊猟周兆各?脅頁貫低議 product 庁翠兆伏撹議。潮範低議 product 庁翠兆才 product 兆匯劔。隼遇?泌惚低議 product 兆嗤蒙歩忖憲?nonalphanumeric?掲方忖、忖銚議忖憲??箭泌泣催?椎担万断氏瓜和皿??_?紋算岻朔恬葎低議 product 庁翠兆。泌惚 product 兆參方忖蝕遊?椎担及匯倖方忖氏喘和皿?紋算渠。低辛參公 product 庁翠兆戻工匯倖徭協吶議兆各?Xcode 氏喘宸倖兆各栖凋兆播俊議才徭強伏撹議遊猟周。低峪俶勣壓俐個壓build setting 嶄議 Product Module Name 軸辛。
諒籾盾畳戻幣
- 委 Swift 才 Objective-C 猟周心恬屢揖議旗鷹鹿栽?旺廣吭凋兆喝融?
- 泌惚低喘崇尺?鳩隠 Build Setting > Pakaging > Defines Module 譜崔葎 Yes?
- 泌惚低聞喘 Objective-C 播俊遊猟周?鳩隠壓 Build Settings 嶄 Objective-C 播俊遊猟周議 build setting 頁児噐 Swfit 園咎匂?軸 Code Generation 根嗤遊猟周議揃抄。宸倖揃抄駅倬頁遊猟周徭附議揃抄?遇音頁万侭壓議朕村?
- Xcode 聞喘低議 product 庁翠兆?遇音頁 target 兆栖凋兆 Objective-C 播俊遊猟周才葎 Swift 徭強伏撹議遊猟周。峋需 Naming Your Product Module?
- 葎阻壓 Objective-C 嶄辛喘? Swift 窃駅倬頁 Objective-C 窃議徨窃?賜宀喘 @Objective-C 炎芝?
- 輝低繍 Swift 擬秘欺 Objective-C 嶄扮?芝廖 Objective-C 音氏繍 Swift 鏡嗤議蒙來鍬咎撹 Objective-C 斤哘議蒙來。峋需双燕Using Swift from Objective-C?
- 泌惚低壓 Swift 旗鷹嶄聞喘低徭失議 Objective-C 窃侏?鳩隠枠繍斤哘議 Objective-C 遊猟周擬秘欺低議 Swift 旗鷹嶄?隼朔嘉繍 Swift 徭強伏撹議遊猟周 import 欺 Objective-C .m 坿猟周嶄栖恵諒 Swift 旗鷹。
<貧匯准
和匯准>