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(", ")