遍匈 / Swift / Swift縮殻 /

壓匯倖垢殻嶄揖扮聞喘Swift才Objective-C

<貧匯准 和匯准>
Swift 嚥 Objective-C 議惹否嬬薦聞低辛參壓揖匯倖垢殻嶄揖扮聞喘曾嶽囂冱。低辛參喘宸嶽出恂 mix and match 議蒙來栖蝕窟児噐詞栽囂冱議哘喘?辛參喘 Swfit 議恷仟蒙來糞孖哘喘議匯何蛍孔嬬?旺涙血仇旺秘厮嗤議 Objective-C 議旗鷹嶄。

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 旗鷹。
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /