Toll-free və Swift arasında körpü nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Toll-free və Swift arasında körpü, Objective-C-dən bəzi Foundation turlarını birbaşa Swift-də istifadə etməyə imkan verən mexanizmdir və əksinə, yeni obyektlər yaratmadan və ya konvertasiya etmədən istifadə edilə bilər. Bu, Swift və Objective-C/C-dəki köhnə çərçivələr arasında qarşılıqlı işləməni təmin edir; bunların çoxu Core Foundation istifadə edir.
Toll-free körpü, bir tipin nümunəsini digər tipin gözlənildiyi yerlərə sərbəst şəkildə ötürməyə imkan verir və əksinə, yeni obyekt yaratmağa əlavə xərclər olmadan. Swift kontekstində, bu, NSString, NSArray, NSDictionary, NSDate kimi bəzi Foundation turlarına aiddir; bunlar Swift-də müvafiq olaraq String, Array, Dictionary, Date kimi istifadə edilə bilər.
Toll-free körüklü tiplərə nümunələr:
CFStringRef<=>NSString<=>StringCFArrayRef<=>NSArray<=>ArrayCFDictionaryRef<=>NSDictionary<=>DictionaryCFDateRef<=>NSDate<=>Date
Swift Objective-C-də yazılmış API-lərlə qarşılıqlı əlaqədə "avtomatik" olaraq bu körpünü həyata keçirir, bu da kodu daha təmiz və rahat edir.
import Foundation // Foundation-ı daxil edir və NS tiplərindən istifadə etməyə imkan verir
let nsString: NSString = "Swift-dən Salam" // NSString obyekti
let swiftString: String = nsString as String // NSString avtomatik olaraq String-ə çevrilir
let swiftArray: [Int] = [1, 2, 3] // Swift array
let nsArray: NSArray = swiftArray as NSArray // Swift array avtomatik olaraq NSArray-ə çevrilir
// NSString-in String gözləyən funksiyada istifadəsi nümunəsi (və əksinə)
func printString(_ str: String) {
print(str)
}
printString(nsString as String) // NSString-i ötürürük, String gözlənilir
func printNSString(_ nsStr: NSString) {
print(nsStr)
}
printNSString(swiftString as NSString) // String-i ötürürük, NSString gözlənilir
Toll-free və Swift arasında körpü, Apple-ın Swift və legacy Objective-C və C kodları arasında uyğunluğu təmin etmək üçün ümumi strategiyasının bir hissəsidir. Bu, yeni Swift kodunun mövcud layihələrə köçürülməsini və inteqrasiyasını əhəmiyyətli dərəcədə asanlaşdırır.