2016-12-01 25 views
0

我有一個塊更新每個字符串的視圖。在它的對象類由我傳遞:在塊中加入字符串

func eachFeaturesSection(block: ((String?) -> Void)?) { 
propertyFeatures.forEach { feature in 
    guard let feature = feature as? RealmString else { 
    return 
    } 
    let features = feature.stringValue 
    block?(features) 
} 
} 

,我會得到它ViewController,通過:

listing!.eachFeaturesSection({ (features) in 
    print(features) 
    self.facilities = features! 
}) 

因此,這將打印爲:

Optional("String 1") 
Optional("String 2") 

和self.facilities將設置爲最新值,即self.facilities = "String 2"

cell.features.text = features // it will print String 2 

那麼,我怎樣才能實現在一個字符串中加入所有字符串,如self.facilities = "String 1, String 2"。我用.jointString不起作用。感謝您的任何幫助。

回答

1

也許你可以將它們添加到String元素的數組中,然後完成後,在該數組上調用joined

因此,像這樣在你的ViewController:

var featuresArray = [String]() 

listing!.eachFeaturesSectionT({ (features) in 
    print(features) 
    featuresArray.append(features!) 
}) 

//Swift 3 syntax 
cell.features.text = featuresArray.joined(separator: ", ") 

//Swift 2 syntax 
cell.features.text = featuresArray.joinWithSeparator(", ") 

希望幫助你。

+0

謝謝。但它給出錯誤說:「類型'[String]'的值在這一行沒有成員'加入':cell.features.text = featuresArray.joined(separator:」,「) – Umitk

+0

是的,這工作!featuresArray.joinWithSeparator(」 ,「) – Umitk

+0

太棒了,很高興你得到它的工作:) – pbodsk

1

self.facilities = features!是什麼都不做,但會保留訂單self.facilities = features!更新值每次迭代

更改爲self.facilities += features!self.facilities = self.facilities + ", " + features!

+0

謝謝。這一個:」self.facilities = self.facilities +功能!「的作品,但它打印像,String1String2。在這個實現中用逗號分隔它們的方式 – Umitk

+0

self.facilities = self.facilities +「,」+ features!,祝你有美好的一天! –

0

這是我怎麼會做它(假設你的propertyFeaturesRealmString數組):

夫特3:

let string = (propertyFeatures.map { $0.stringValue }).joined(separator: ", ") 

Swift 2:

let string = (propertyFeatures.map { $0.stringValue }).joinWithSeparator(", ")