2015-12-15 11 views
6

私はOS XからLinuxにいくつかの基本的なアプリケーションを移植しようとしていますが、Linuxプラットフォームでは基本的なものさえ失われているようです。欠けているものがいくつかありますか?ここで は一例です:Swift 2とLinux/OS Xの違い

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

この単純なコードはLinuxのOS X上で動作します - あなたは結果を参照してください。 欠落している基本情報がない場合は、何かを移植することは非常に難しいです。 は、そして、それは

答えて

5

スウィフト3は秋にリリースされる。..欠けていても基本的なもののように見える2016年

最近オープンソース・スウィフトとLinuxポートはwork in progressです:

ポートまだ進行中の作業ですが、今日は実験​​用に使用できると言ってうれしいです。

Swift.orggithub.com/appleにアクセスして素晴らしい仕事を楽しむことができます。

まだ実装されていないものが見つかった場合は、バグを報告したり、その機能を実装したりできます。

open source Swiftの新バージョンは、Swift.orgに定期的に掲載されます。

3

あなたが呼び出しようとしているメソッドは、実際はNSStringの一部です。文字列はNSStringの裏側でブリッジされているため、OS Xでこのメソッドを使用できるのはそのためです.NSStringはFoundationフレームワークの一部であり、Foundationは完全にLinux用に実装されていません。ここでは、財団のさまざまな部分の状況を確認できます:Foundation Status。 NSStringは現在部分的にしか実装されていません。あなたはまだあなたが純粋スウィフトのソリューションを自由に使用することが財団

をインポートする必要がOSXで

+0

このステータスファイルについてはわかりませんでした。素晴らしい、ありがとう! – Moritz

+0

問題ありません!非常に多くの新しいスウィフトのおいしさ、それらをすべて追跡するのは難しいです。 –

+0

ありがとうございます。だから忍耐が必要です:)問題は解決しました。 – MrSpock

0

は、あなたの場合、より高度な何かのため

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 

に、あなたは強力な機能

mutating func replaceRange<C : CollectionType where C.Generator.Element == Character>(subRange: Range<Index>, with newElements: C) 
を持っています

または

mutating func replaceRange(subRange: Range<Index>, with newElements: String) 
関連する問題