Sobes.tech
Middle+

Toll-free және Swift арасындағы көпір деген не?

sobes.tech AI

AI-дан жауап

Toll-free және Swift арасындағы көпір — бұл Objective-C-ден алынған кейбір Foundation түрлерін ("Toll-free bridged" деп аталатын) Swift-те тікелей пайдалану және керісінше, жаңа объектілерді құру немесе түрлендіру қажеттілігінсіз қолдануға мүмкіндік беретін механизм. Бұл Swift пен Objective-C/C-те ескі фреймворктер арасында өзара әрекеттестікті қамтамасыз етеді, олардың көпшілігі Core Foundation-ды пайдаланады.

Toll-free көпірлеу дегеніміз — бір типтің экземплярларын басқа типтің экземпляры күтілген жерге еркін өткізуге болады, және керісінше, жаңа объекті құру шығындарынсыз. Swift контекстінде бұл NSString, NSArray, NSDictionary, NSDate сияқты кейбір Foundation типтеріне таралады, олар Swift-те String, Array, Dictionary, Date ретінде пайдаланыла алады.

Toll-free көпірлеу типтерінің мысалдары:

  • CFStringRef <=> NSString <=> String
  • CFArrayRef <=> NSArray <=> Array
  • CFDictionaryRef <=> NSDictionary <=> Dictionary
  • CFDateRef <=> NSDate <=> Date

Swift бұл көпірлеуді Objective-C-те жазылған API-мен өзара әрекеттесу кезінде автоматты түрде орындайды, бұл кодты таза әрі ыңғайлы етеді.

import Foundation // Foundation-ды қосады және NS-типтерін пайдалануға мүмкіндік береді

let nsString: NSString = "Привет из Swift" // NSString объектісі
let swiftString: String = nsString as String // NSString автоматты түрде String-ке түрленеді

let swiftArray: [Int] = [1, 2, 3] // Swift массиві
let nsArray: NSArray = swiftArray as NSArray // Swift массиві автоматты түрде NSArray-ға түрленеді

// NSString-ді String күтетін функцияда пайдалану мысалы (және керісінше)
func printString(_ str: String) {
    print(str)
}

printString(nsString as String) // NSString-ді String ретінде өткізу

func printNSString(_ nsStr: NSString) {
    print(nsStr)
}

printNSString(swiftString as NSString) // String-ді NSString ретінде өткізу

Toll-free және Swift арасындағы көпір — Apple-дің Swift пен Objective-C және C-те жазылған ескі код арасындағы үйлесімділікті қамтамасыз ету стратегиясының бөлігі. Бұл жаңа Swift кодын бар жобаларға оңай миграциялауға және интеграциялауға мүмкіндік береді.