Swift嚥Objective-C API議住札
<貧匯准
和匯准>
札喘來頁斑 Swift 才 Objective-C 屢俊栽議匯嶽蒙來?聞低嬬校壓匯嶽囂冱園亟議猟周嶄聞喘総匯嶽囂冱。輝低彈姥蝕兵委 Swift 蛮秘欺低議蝕窟送殻嶄扮?低哘乎峡誼泌採旋喘札喘來栖嶷仟協吶旺戻互低亟 Cocoa 哘喘議圭宛。
札喘來載嶷勣議匯泣祥頁塋俯低壓亟 Swift 旗鷹扮聞喘 Objective-C 議 API 俊笥。輝低擬秘匯倖 Objective-C 崇尺朔?低辛參聞喘圻伏議 Swift 囂隈糞箭晒万議 Class 旺拝嚥岻住札。
訟倖箭徨?低壓聞喘 Objective-C 扮氏宸劔恂?
低辛參壓兜兵晒扮?塋週追禱澼塹鶺沈猥唯r何敏垪歠塰詇?Swift 嬬校屎鳩登僅斤嵆議窃侏。
葎阻由匯才酒叟?Objective-C 議垢皆圭隈匆壓 Swift 嶄啌符葎圭宴議兜兵晒圭隈。宸嶽啌符嬬校斑麿断聞喘揖劔酒準苧阻議兜兵晒圭隈。箭泌?壓 Objective-C 嶄低辛嬬氏崧和中宸劔距喘匯倖垢皆圭隈?
壓 Objective-C 嶄?匯倖嗤卦指峙議涙歌方圭隈辛參瓜恬葎匯倖咨塀議恵諒痕方?旺拝辛參嚥恵諒匂聞喘揖劔議圭隈距喘。徽壓 Swift 嶄音壅嬬校宸劔恂阻?峪嗤聞喘@property購囚忖蕗苧議奉來嘉氏瓜恬葎奉來哈秘。
輝 Objective-C 圭隈廬算欺 Swift 扮?Objective-C 議selector議及匯何蛍繍氏撹葎圭隈兆旺竃孖壓垈凄催議念中?遇及匯倖歌方繍岷俊壓凄催嶄竃孖?旺拝短嗤歌方兆?遇複和議歌方兆嚥歌方夸匯匯斤哘議野秘垈凄催嶄。
訟倖箭徨?低壓聞喘 Objective-C 扮氏宸劔恂?
訟倖箭徨?効 id 匯劔?低辛參葎AnyObject窃侏議斤嵆蛍塘販採凪麿窃侏議斤嵆?低匆揖劔辛參葎万嶷仟蛍塘凪麿窃侏議斤嵆。
訟倖箭徨?壓和中議旗鷹嶄?及匯才及屈佩旗鷹繍音氏瓜峇佩咀葎length奉來才characterAtIndex:圭隈音贋壓噐 NSDate 斤嵆嶄。myLength械楚氏瓜容霞撹辛僉議Int窃侏旺拝瓜験峙葎nil。揖劔低辛參聞喘if-let蕗苧栖嗤訳周議婢蝕宸倖圭隈議卦指峙?貫遇登僅斤嵆頁倦嬬峇佩宸倖圭隈。祥崧及眉佩恂議匯劔。
咀葎Objective-C音氏隠屬匯倖斤嵆議峙頁倦掲腎?Swift壓哈秘Objective-C議API議扮昨?鳩隠阻侭嗤痕方議卦指窃侏嚥歌方窃侏脅頁optional?壓低聞喘Objective-C議API岻念?低哘乎殊臥旺隠屬乎峙掲腎。 壓蝶乂秤趨和?低辛嬬蒸斤鳩範蝶乂Objective-C圭隈賜宀奉來喟垓音哘乎卦指匯倖nil議斤嵆哈喘。葎阻斑斤嵆壓宸嶽秤趨和厚紗叟喘?Swift聞喘 implicitly unwrapped optionals 圭隈哈秘斤嵆? implicitly unwrapped optionals 淫根optional 窃侏議侭嗤芦畠蒙來。緩翌?低辛參岷俊恵諒斤嵆議峙遇涙俶殊臥nil。輝低恵諒宸嶽窃侏議延楚扮? implicitly unwrapped optional 遍枠殊臥宸倖斤嵆議峙頁倦音贋壓?泌惚音贋壓?繍氏砺竃塰佩扮危列。
訟倖箭徨?低辛參制婢UIBezierPath窃栖葎万奐紗匯倖吉円眉叔侘?宸倖圭隈峪俶戻工眉叔侘議円海嚥軟泣。
低音嬬聞喘制婢栖顕固 Objective-C 窃侏嶄贋壓議圭隈嚥奉來。
液淫嚥 blocks 囂吶貧?宥徽頁壓匯倖仇圭音揖?延楚頁辛參岷俊個延議?遇音頁崧 block 椎劔氏申唄延楚。算鞘三傍?Swift 嶄延楚議潮範佩葎嚥 Objective-C 嶄 __block 延楚匯崑。
Swift 嚥 Objective-C 匯違聞喘 == 嚥 === 荷恬憲栖恂曳熟。Swift 議 == 荷恬憲葎坿徭 NSObject 議斤嵆戻工阻潮範議糞孖。壓糞孖 == 荷恬憲扮?Swift 距喘 NSObject 協吶議 isEqual: 圭隈。
NSObject 窃叙叙恂阻附芸議曳熟?侭參低俶勣壓低徭失議窃嶄嶷仟糞孖 isEqual: 圭隈。咀葎低辛參岷俊勧弓 Swift 斤嵆公 Objective-C 議 API?低匆哘乎葎宸乂斤嵆糞孖徭協吶議 isEqual: 圭隈?泌惚低錬李曳熟曾倖斤嵆議坪否頁倦屢揖遇音頁叙叙曳熟麿断頁音頁喇屢揖議斤嵆塗伏。
恬葎糞孖曳熟痕方議匯何蛍?鳩隠功象Object comparison糞孖斤嵆議hash奉來。厚序匯化議傍?泌惚低錬李低議窃嬬校恬葎忖灸嶄議囚?匆俶勣恆貫Hashable亅咏參式糞孖hashValues奉來。
@objc辛參斑低議 Swift API 壓 Objective-C 嶄聞喘。算鞘三傍?低辛參宥狛壓販採 Swift 圭隈、窃、奉來念耶紗@objc?栖聞誼麿断辛參壓 Objective-C 旗鷹嶄聞喘。泌惚低議窃写覚徭 Objective-C,園咎匂氏徭強逸廁低頼撹宸匯化。園咎匂珊氏壓侭嗤議延楚、圭隈、奉來念紗 @objc?泌惚宸倖窃徭失念中紗貧阻@objc購囚忖。輝低聞喘@IBOutlet?@IBAction?賜宀頁@NSManaged奉來扮?@objc匆氏徭強紗壓念中。宸倖購囚忖匆辛參喘壓 Objetive-C 嶄議 target-action 譜柴庁塀嶄?箭泌?NSTimer賜宀UIButton。
輝低壓 Objective-C 嶄聞喘 Swift API?園咎匂児云斤囂鞘恂岷俊議鍬咎。箭泌?Swift API func playSong(name: String)氏瓜盾瞥葎- (void)playSong:(NSString *)name。隼遇?嗤匯倖箭翌?輝壓 Objective-C 嶄聞喘 Swift 議兜兵晒痕方?園咎匂氏壓圭隈念耶紗“initWith”旺拝繍圻兜兵晒痕方議及匯倖歌方遍忖銚寄亟。箭泌?宸倖 Swift 兜兵晒痕方init (songName: String, artist: String繍瓜鍬咎葎- (instancetype)initWithSongName:(NSString *)songName artist:(NSString *)artist 。
Swift 揖扮匆戻工阻匯倖@objc購囚忖議延悶?宥狛万低辛參徭協吶壓 Objectiv-C 嶄廬算議痕方兆。箭泌?泌惚低議 Swift 窃議兆忖淫根 Objecytive-C 嶄音屶隔議忖憲?低祥辛參葎 Objective-C 戻工匯倖辛工紋旗議兆忖。泌惚低公 Swift 痕方戻工匯倖 Objecytive-C 兆忖?勣芝誼葎揮歌方議痕方耶紗?:?
札喘來載嶷勣議匯泣祥頁塋俯低壓亟 Swift 旗鷹扮聞喘 Objective-C 議 API 俊笥。輝低擬秘匯倖 Objective-C 崇尺朔?低辛參聞喘圻伏議 Swift 囂隈糞箭晒万議 Class 旺拝嚥岻住札。
兜兵晒
葎阻聞喘 Swift 糞箭晒 Objective-C 議 Class?低哘乎聞喘 Swift 囂隈距喘万議匯倖兜兵晒匂。輝 Objective-C 議init圭隈延晒欺 Swift?麿断喘 Swift 兜兵晒囂隈格孖。“init”念弸瓜舜僅輝恬匯倖購囚忖?喘栖燕苧乎圭隈頁兜兵晒圭隈。椎乂參“initWith”蝕遊議init圭隈?“With”匆氏瓜肇茅。貫“init”賜宀“initWith”嶄蛍宣竃栖議宸何蛍圭隈兆遍忖銚延撹弌亟?旺拝瓜輝恂頁及匯倖歌方議歌方兆。凪噫議耽匯何蛍圭隈兆卆肝延龍歌方兆。宸乂圭隈兆脅壓垈凄催嶄瓜距喘。訟倖箭徨?低壓聞喘 Objective-C 扮氏宸劔恂?
//Objective-C UITableView *myTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];壓 Swift 嶄?低哘乎宸劔恂?
//Swift let myTableView: UITableView = UITableView(frame: CGRectZero, style: .Grouped)低音俶勣距喘 alloc?Swift 嬬紋低侃尖。廣吭?輝聞喘 Swift 欠鯉議兜兵晒痕方議扮昨?“init”音氏竃孖。
低辛參壓兜兵晒扮?塋週追禱澼塹鶺沈猥唯r何敏垪歠塰詇?Swift 嬬校屎鳩登僅斤嵆議窃侏。
//Swift let myTextField = UITextField(frame: CGRect(0.0, 0.0, 200.0, 40.0))宸戦議UITableView才UITextField斤嵆才低壓 Objective-C 嶄聞喘議醤嗤屢揖議孔嬬。低辛參喘匯劔議圭塀聞喘麿断?淫凄恵諒奉來賜宀距喘光徭議窃嶄議圭隈。
葎阻由匯才酒叟?Objective-C 議垢皆圭隈匆壓 Swift 嶄啌符葎圭宴議兜兵晒圭隈。宸嶽啌符嬬校斑麿断聞喘揖劔酒準苧阻議兜兵晒圭隈。箭泌?壓 Objective-C 嶄低辛嬬氏崧和中宸劔距喘匯倖垢皆圭隈?
//Objective-C UIColor *color = [UIColor colorWithRed:0.5 green:0.0 blue:0.5 alpha:1.0];壓 Swift 嶄?低哘乎宸劔恂?
//Swift let color = UIColor(red: 0.5, green: 0.0, blue: 0.5, alpha: 1.0)
恵諒奉來
壓 Swift 嶄恵諒才譜崔 Objective-C 斤嵆議奉來扮?聞喘泣囂隈?
// Swift
myTextField.textColor = UIColor.darkGrayColor()
myTextField.text = "Hello world"
if myTextField.editing {
myTextField.editing = false
}
輝 get 賜 set 奉來扮?岷俊聞喘奉來兆各?音俶勣現紗垈凄催。廣吭?darkGrayColor朔中現紗阻匯斤垈凄催?宸頁咀葎darkGrayColor頁UIColor議匯倖窃圭隈?音頁匯倖奉來。壓 Objective-C 嶄?匯倖嗤卦指峙議涙歌方圭隈辛參瓜恬葎匯倖咨塀議恵諒痕方?旺拝辛參嚥恵諒匂聞喘揖劔議圭隈距喘。徽壓 Swift 嶄音壅嬬校宸劔恂阻?峪嗤聞喘@property購囚忖蕗苧議奉來嘉氏瓜恬葎奉來哈秘。
圭隈
壓 Swift 嶄距喘 Objective-C 圭隈扮?聞喘泣囂隈。輝 Objective-C 圭隈廬算欺 Swift 扮?Objective-C 議selector議及匯何蛍繍氏撹葎圭隈兆旺竃孖壓垈凄催議念中?遇及匯倖歌方繍岷俊壓凄催嶄竃孖?旺拝短嗤歌方兆?遇複和議歌方兆嚥歌方夸匯匯斤哘議野秘垈凄催嶄。
訟倖箭徨?低壓聞喘 Objective-C 扮氏宸劔恂?
//Objective-C [myTableView insertSubview:mySubview atIndex:2];壓 Swift 嶄?低哘乎宸劔恂?
//Swift myTableView.insertSubview(mySubview, atIndex: 2)泌惚低距喘匯倖涙歌圭隈?挽駅倬壓圭隈兆朔中紗貧匯斤垈凄催
//Swift myTableView.layoutIfNeeded()
id 惹否來?id Compatibility?
Swift 淫根匯倖出恂AnyObject議亅咏窃侏?燕幣販吭窃侏議斤嵆?祥崧 Objective-C 嶄議id匯劔。AnyObject亅咏塋俯低園亟窃侏芦畠議 Swift 旗鷹揖扮略隔涙窃侏斤嵆議痩試來。咀葎AnyObject亅咏隠屬阻宸嶽芦畠?Swift 繍 id 斤嵆擬秘葎 AnyObject。訟倖箭徨?効 id 匯劔?低辛參葎AnyObject窃侏議斤嵆蛍塘販採凪麿窃侏議斤嵆?低匆揖劔辛參葎万嶷仟蛍塘凪麿窃侏議斤嵆。
//Swift var myObject: AnyObject = UITableViewCell() myObject = NSDate()低匆辛參壓距喘 Objective-C 圭隈賜宀恵諒奉來扮音繍万廬算葎醤悶窃議窃侏。宸淫凄阻 Objcive-C 嶄炎芝葎 @objc 議圭隈。
//Swift let futureDate = myObject.dateByAddingTimeInterval(10) let timeSinceNow = myObject.timeIntervalSinceNow隼遇?喇噐岷欺塰佩扮嘉岑祇AnyObject議斤嵆窃侏?侭參嗤辛嬬壓音将吭寂亟竃音芦畠旗鷹。総翌?嚥 Objective-C 音揖議頁?泌惚低距喘圭隈賜宀恵諒議奉來 AnyObject 斤嵆短嗤蕗苧?繍氏烏塰佩扮危列。曳泌和中議旗鷹壓塰佩扮繍氏烏竃匯倖 unrecognized selector error 危列?
//Swift myObject.characterAtIndex(5) // crash, myObject does't respond to that method徽頁?低辛參宥狛 Swift 議 optinals 蒙來栖電茅宸倖 Objective-C 嶄械需議危列?輝低喘AnyObject斤嵆距喘匯倖 Objective-C 圭隈扮?宸肝距喘繍氏延撹匯肝咨塀婢蝕 optional?implicitly unwrapped optional?議佩葎。低辛參宥狛 optional 蒙來栖畳協 AnyObject 窃侏議斤嵆頁倦距喘乎圭隈?揖劔議?低辛參委宸嶽蒙來哘喘壓奉來貧。
訟倖箭徨?壓和中議旗鷹嶄?及匯才及屈佩旗鷹繍音氏瓜峇佩咀葎length奉來才characterAtIndex:圭隈音贋壓噐 NSDate 斤嵆嶄。myLength械楚氏瓜容霞撹辛僉議Int窃侏旺拝瓜験峙葎nil。揖劔低辛參聞喘if-let蕗苧栖嗤訳周議婢蝕宸倖圭隈議卦指峙?貫遇登僅斤嵆頁倦嬬峇佩宸倖圭隈。祥崧及眉佩恂議匯劔。
//Swift
let myLength = myObject.length?
let myChar = myObject.characterAtIndex?(5)
if let fifthCharacter = myObject.characterAtIndex(5) {
println("Found \(fifthCharacter) at index 5")
}
斤噐 Swift 嶄議膿崙窃侏廬算?貫 AnyObject 窃侏議斤嵆廬算撹苧鳩議窃侏旺音氏隠屬撹孔?侭參万氏卦指匯倖辛僉議峙。遇低俶宥狛殊臥乎峙議窃侏栖鳩範廬算頁倦撹孔。
//Swift
let userDefaults = NSUserDefaults.standardUserDefaults()
let lastRefreshDate: AnyObject? = userDefaults.objectForKey("LastRefreshDate")
if let date = lastRefreshDate as? NSDate {
println("\(date.timeIntervalSinceReferenceDate)")
}
輝隼?泌惚低嬬鳩協宸倖斤嵆議窃侏?旺拝鳩協音頁nil??低辛參耶紗as荷恬憲膿崙距喘。//Swift let myDate = lastRefreshDate as NSDate let timeInterval = myDate.timeIntervalSinceReferenceDate
聞喘nil
壓Objective-C嶄?斤嵆議哈喘辛參頁峙葎NULL議圻兵峺寞?揖劔匆頁Objective-C嶄議nil?。遇壓Swift嶄?侭嗤議峙–淫凄潤更悶嚥斤嵆議哈喘–脅瓜隠屬葎掲腎。恬葎紋旗?低繍宸倖辛參葎腎議峙淫廾葎optional type。輝低俶勣傚御峙葎腎扮?低俶勣聞喘nil。低辛參壓Optionals嶄阻盾厚謹。咀葎Objective-C音氏隠屬匯倖斤嵆議峙頁倦掲腎?Swift壓哈秘Objective-C議API議扮昨?鳩隠阻侭嗤痕方議卦指窃侏嚥歌方窃侏脅頁optional?壓低聞喘Objective-C議API岻念?低哘乎殊臥旺隠屬乎峙掲腎。 壓蝶乂秤趨和?低辛嬬蒸斤鳩範蝶乂Objective-C圭隈賜宀奉來喟垓音哘乎卦指匯倖nil議斤嵆哈喘。葎阻斑斤嵆壓宸嶽秤趨和厚紗叟喘?Swift聞喘 implicitly unwrapped optionals 圭隈哈秘斤嵆? implicitly unwrapped optionals 淫根optional 窃侏議侭嗤芦畠蒙來。緩翌?低辛參岷俊恵諒斤嵆議峙遇涙俶殊臥nil。輝低恵諒宸嶽窃侏議延楚扮? implicitly unwrapped optional 遍枠殊臥宸倖斤嵆議峙頁倦音贋壓?泌惚音贋壓?繍氏砺竃塰佩扮危列。
制婢?Extensions?
Swift 議制婢才 Objective-C 議窃艶?Category?屢貌。制婢葎圻嗤議窃?潤更才旦訟戟源阻孔嬬?淫凄壓 Objective-C 嶄協吶狛議。低辛參葎狼由議崇尺賜宀低徭失議窃侏奐紗制婢?峪俶勣擬秘栽癖議庁翠旺拝隠屬低壓 Objective-C 嶄聞喘議窃、潤更賜旦訟啜嗤屢揖議兆忖。訟倖箭徨?低辛參制婢UIBezierPath窃栖葎万奐紗匯倖吉円眉叔侘?宸倖圭隈峪俶戻工眉叔侘議円海嚥軟泣。
//Swift
extension UIBezierPath {
convenience init(triangleSideLength: Float, origin: CGPoint) {
self.init()
let squareRoot = Float(sqrt(3))
let altitude = (squareRoot * triangleSideLength) / 2
moveToPoint(origin)
addLineToPoint(CGPoint(triangleSideLength, origin.x))
addLineToPoint(CGPoint(triangleSideLength / 2, altitude))
closePath()
}
}
低匆辛參聞喘制婢栖奐紗奉來?淫凄窃議奉來嚥床蓑奉來?。隼遇?宸乂奉來駅倬頁宥狛柴麻嘉嬬資函議?制婢音氏葎窃?潤更悶?旦訟贋刈奉來。和中宸倖箭徨葎CGRect窃奐紗阻匯倖出area議奉來。
//Swift
extension CGRect {
var area: CGFloat {
return width * height
}
}
let rect = CGRect(x: 0.0, y: 0.0, width: 10.0, height: 50.0)
let area = rect.area
// area: CGFloat = 500.0
低揖劔辛參聞喘制婢栖葎窃耶紗亅咏遇涙俶奐紗万議徨窃。泌惚宸倖亅咏頁壓 Swift 嶄瓜協吶議?低辛參耶紗 comformance 欺万議潤更賜旦訟嶄涙胎万断壓 Objective-C 賜壓 Swift 嶄瓜協吶。低音嬬聞喘制婢栖顕固 Objective-C 窃侏嶄贋壓議圭隈嚥奉來。
液淫?Closures?
Objective-C 嶄議blocks氏瓜徭強擬秘葎 Swift 嶄議液淫。箭泌?和中頁匯倖 Objective-C 嶄議 block 延楚?
//Objective-C
void (^completionBlock)(NSData *, NSError *) = ^(NSData *data, NSError *error) {/* ... */}
遇万壓 Swift 嶄議侘塀葎
//Swift
let completionBlock: (NSData, NSError) -> Void = {data, error in /* ... */}
Swift 議液淫嚥 Objective-C 嶄議 blocks 嬬校才沈屢侃?侭參低辛參委匯倖 Swift 液淫勧弓公匯倖委 block 恬葎歌方議 Objective-C 痕方。Swift 液淫嚥痕方醤嗤札宥議窃侏?侭參低封崛辛參勧弓 Swift 痕方議兆忖。液淫嚥 blocks 囂吶貧?宥徽頁壓匯倖仇圭音揖?延楚頁辛參岷俊個延議?遇音頁崧 block 椎劔氏申唄延楚。算鞘三傍?Swift 嶄延楚議潮範佩葎嚥 Objective-C 嶄 __block 延楚匯崑。
曳熟斤嵆
輝曳熟曾倖 Swift 嶄議斤嵆扮?辛參聞喘曾嶽圭塀。及匯嶽?聞喘?==??登僅曾倖斤嵆坪否頁倦屢揖。及屈嶽?聞喘(===)?登僅械楚賜宀延楚頁倦葎揖匯倖斤嵆議糞箭。Swift 嚥 Objective-C 匯違聞喘 == 嚥 === 荷恬憲栖恂曳熟。Swift 議 == 荷恬憲葎坿徭 NSObject 議斤嵆戻工阻潮範議糞孖。壓糞孖 == 荷恬憲扮?Swift 距喘 NSObject 協吶議 isEqual: 圭隈。
NSObject 窃叙叙恂阻附芸議曳熟?侭參低俶勣壓低徭失議窃嶄嶷仟糞孖 isEqual: 圭隈。咀葎低辛參岷俊勧弓 Swift 斤嵆公 Objective-C 議 API?低匆哘乎葎宸乂斤嵆糞孖徭協吶議 isEqual: 圭隈?泌惚低錬李曳熟曾倖斤嵆議坪否頁倦屢揖遇音頁叙叙曳熟麿断頁音頁喇屢揖議斤嵆塗伏。
恬葎糞孖曳熟痕方議匯何蛍?鳩隠功象Object comparison糞孖斤嵆議hash奉來。厚序匯化議傍?泌惚低錬李低議窃嬬校恬葎忖灸嶄議囚?匆俶勣恆貫Hashable亅咏參式糞孖hashValues奉來。
Swift 窃侏惹否來
輝低協吶阻匯倖写覚徭NSObject賜宀凪麿 Objective-C 窃議 Swift 窃?宸乂窃脅嬬嚥 Objective-C 涙血銭俊。侭嗤議化帶脅嗤 Swift 園咎匂徭強頼撹?泌惚低貫隆壓 Objective-C 旗鷹嶄擬秘 Swift 窃?低匆音俶勣毅伉窃侏癖塘諒籾。総翌匯嶽秤趨?泌惚低議 Swift 窃旺音栖坿徭 Objectve-C 窃遇拝低錬李嬬壓 Objecive-C 議旗鷹嶄聞喘万?低辛參聞喘和中宙峰議 @objc 奉來。@objc辛參斑低議 Swift API 壓 Objective-C 嶄聞喘。算鞘三傍?低辛參宥狛壓販採 Swift 圭隈、窃、奉來念耶紗@objc?栖聞誼麿断辛參壓 Objective-C 旗鷹嶄聞喘。泌惚低議窃写覚徭 Objective-C,園咎匂氏徭強逸廁低頼撹宸匯化。園咎匂珊氏壓侭嗤議延楚、圭隈、奉來念紗 @objc?泌惚宸倖窃徭失念中紗貧阻@objc購囚忖。輝低聞喘@IBOutlet?@IBAction?賜宀頁@NSManaged奉來扮?@objc匆氏徭強紗壓念中。宸倖購囚忖匆辛參喘壓 Objetive-C 嶄議 target-action 譜柴庁塀嶄?箭泌?NSTimer賜宀UIButton。
輝低壓 Objective-C 嶄聞喘 Swift API?園咎匂児云斤囂鞘恂岷俊議鍬咎。箭泌?Swift API func playSong(name: String)氏瓜盾瞥葎- (void)playSong:(NSString *)name。隼遇?嗤匯倖箭翌?輝壓 Objective-C 嶄聞喘 Swift 議兜兵晒痕方?園咎匂氏壓圭隈念耶紗“initWith”旺拝繍圻兜兵晒痕方議及匯倖歌方遍忖銚寄亟。箭泌?宸倖 Swift 兜兵晒痕方init (songName: String, artist: String繍瓜鍬咎葎- (instancetype)initWithSongName:(NSString *)songName artist:(NSString *)artist 。
Swift 揖扮匆戻工阻匯倖@objc購囚忖議延悶?宥狛万低辛參徭協吶壓 Objectiv-C 嶄廬算議痕方兆。箭泌?泌惚低議 Swift 窃議兆忖淫根 Objecytive-C 嶄音屶隔議忖憲?低祥辛參葎 Objective-C 戻工匯倖辛工紋旗議兆忖。泌惚低公 Swift 痕方戻工匯倖 Objecytive-C 兆忖?勣芝誼葎揮歌方議痕方耶紗?:?
//Swift
@objc(Squirrel)
class Белка {
@objc(initWithName:)
init (имя: String) { /*...*/ }
@objc(hideNuts:inTree:)
func прячьОрехи(Int, вДереве: Дерево) { /*...*/ }
}
輝低壓 Swift 窃嶄聞喘@objc(<#name#>)購囚忖?宸倖窃辛參音俶勣凋兆腎寂軸辛壓 Objective-C 嶄聞喘。宸倖購囚忖壓低濡痺 Objecive-C 旗鷹欺 Swift 扮揖劔匆掲械嗤喘。喇噐拷亀狛議斤嵆贋廈阻窃議兆忖?低哘乎聞喘@objc(<#name#>)栖蕗苧嚥症議拷亀狛議窃屢揖議兆忖?宸劔症議窃嘉嬬瓜仟議 Swift 窃盾亀。Objective-C 僉夲匂?Selectors?
匯倖 Objective-C 僉夲匂窃侏峺?匯倖 Objective-C 議圭隈兆。壓 Swift 扮旗?Objective-C 議僉夲匂瓜Selector潤更悶紋旗。低辛參宥狛忖憲堪幹秀匯倖僉夲匂?曳泌let mySelector: Selector = "tappedButton:"。咀葎忖憲堪嬬校徭強廬算葎僉夲匂?侭參低辛參委忖憲堪岷俊勧弓公俊鞭僉夲匂議圭隈。
//Swift
import UIKit
class MyViewController: UIViewController {
let myButton = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
super.init(nibName: nibName, bundle: nibBundle)
myButton.targetForAction("tappedButton:", withSender: self)
}
func tappedButton(sender: UIButton!) {
println("tapped button")
}
}
廣吭? performSelector:圭隈才屢購議距喘僉夲匂議圭隈短嗤擬秘欺 Swift 嶄咀葎万断頁音芦畠議。泌惚低議 Swift 窃写覚徭 Objective-C 議窃?低議侭嗤圭隈脅辛參喘恬 Objective-C 議僉夲匂。総翌?泌惚低議 Swift 窃音頁写覚徭 Objective-C?泌惚低?勣輝僉夲匂栖聞喘低祥俶勣壓念中耶紗@objc購囚忖?峋秤萩心Swift 窃侏惹否來。
<貧匯准
和匯准>