Sobes.tech
Middle+

Toll-free ile Swift arasında köprü nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Toll-free ve Swift arasındaki köprü, Objective-C'den bazı Foundation türlerini doğrudan Swift'te kullanmaya olanak tanıyan ve aynı zamanda tersine, yeni nesne oluşturmadan veya dönüştürmeden kullanılabilen bir mekanizmadır. Bu, Swift ile Objective-C/C'deki eski çerçeveler arasında birlikte çalışabilirliği sağlar; bunların çoğu Core Foundation kullanır.

Toll-free köprüleme, bir türün örneğini, başka bir türün örneğinin beklendiği yerlere serbestçe aktarabileceğiniz ve tersine, yeni nesne oluşturmaya ek maliyet olmadan yapabileceğiniz anlamına gelir. Swift bağlamında, bu NSString, NSArray, NSDictionary, NSDate gibi bazı Foundation türlerine uygulanır; bunlar Swift'te sırasıyla String, Array, Dictionary, Date olarak kullanılabilir.

Toll-free köprülenmiş türlere örnekler:

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

Swift, Objective-C ile yazılmış API'lerle etkileşimde bu köprüyü "otomatik" olarak gerçekleştirir, bu da kodu daha temiz ve kullanışlı hale getirir.

import Foundation // Foundation'ı içerir ve NS türlerini kullanmaya izin verir

let nsString: NSString = "Swift'ten Merhaba" // NSString nesnesi
let swiftString: String = nsString as String // NSString otomatik olarak String'e dönüştürülür

let swiftArray: [Int] = [1, 2, 3] // Swift dizisi
let nsArray: NSArray = swiftArray as NSArray // Swift dizisi otomatik olarak NSArray'e dönüştürülür

// NSString'in, String bekleyen bir fonksiyonda kullanımı (ve tersi)
func printString(_ str: String) {
    print(str)
}

printString(nsString as String) // NSString verilir, String beklenir

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

printNSString(swiftString as NSString) // String verilir, NSString beklenir

Toll-free ve Swift arasındaki köprü, Apple'ın Swift ile Objective-C ve C'deki eski kodlar arasında uyumluluğu sağlamaya yönelik genel stratejisinin bir parçasıdır. Bu, yeni Swift kodunun mevcut projelere göçünü ve entegrasyonunu büyük ölçüde kolaylaştırır.