2015-12-15 11 views
6

OS X'den Linux'a bazı temel uygulamaları yüklemeye çalışıyorum ama Linux platformunda temel şeylerin bile eksik olduğu görülüyor. Eksik olan bazı belgeler var mı? Sonuçları gördükten -Swift 2 ve Linux/OS X farkları

exmcast.swift:7:20: error: value of type 'String' has no member 'stringByReplacingOccurrencesOfString' 
let name: String = address.stringByReplacingOccurrencesOfString(".", withString: "_") 

Bu basit kod Linux'ta OS X üzerinde çalışır: Burada örnektir. Eksik olan hiçbir temel bilgi olmadığında, herhangi bir şeyi taşımak çok zor. Ve

cevap

5

Swift 3 sonbaharda çıkacak .. eksik bile temel şeyler gibi görünüyor 2016

son zamanlarda açık kaynaklı Swift ve Linux portu work in progress şunlardır:

portu Halen devam eden bir çalışmadır, ancak bugün deneme için kullanılabilir olduğunu söylemekten mutluluk duyuyoruz.

Sen Swift.org ve github.com/apple gidip düşsel iş tadını çıkarabilir.

Henüz uygulanmayan bir şey bulduğunuzda, bir hata kaydedebilir ve/veya özelliği uygulamaya yardımcı olabilirsiniz.

open source Swift'un yeni sürümleri düzenli olarak Swift.org adresinde yayınlanacaktır.

3

Aramaya çalıştığınız yöntem aslında NSString'in bir parçasıdır. Dize, NSString'e sahnelerin ardında köprülenmiş ve bu yüzden bu yöntemi OS X'de kullanabiliyorsunuz. NSString, Foundation çerçevesinin bir parçasıdır ve Foundation, tamamen Linux için uygulanmamaktadır. Vakfın çeşitli bölümlerinin durumunu şu adreste kontrol edebilirsiniz: Foundation Status. NSString şu anda sadece kısmen uygulanmaktadır.

+0

Bu durum dosyasını bilmiyordum. Fantastik, teşekkürler! – Moritz

+0

Sorun değil! Pek çok yeni Swift oyunu, hepsini takip etmek zor. –

+0

Teşekkürler. Yani sabır gerekiyor :) Sorun çözüldü. – MrSpock

0

OSX'te hala Vakfı ithalat gerekir

Davandan şey için

let str = "alfa.beta" 
// (1) 
    let str1 = str.characters.map { 
     $0 == "." ? "_": $0 
    }.reduce("") { (str, c) -> String in 
     str + String(c) 
    } 
// (2) 
    let str2 = String(str.characters.split(".").joinWithSeparator(["_"])) 
    print(str,str1,str2) // alfa.beta alfa_beta alfa_beta 

yılında, saf Swift çözümü kullanmakta serbesttirler

daha gelişmiş, sahip güçlü işlevler

mutating func replaceRange<C : CollectionType where C.Generator.Element == Character>(subRange: Range<Index>, with newElements: C) 

veya