2016-12-23 48 views
0

我有一個結構來存儲它們在應用已經捆綁畫面的名稱和圖像名稱如下如何用具有相應圖像名稱的結構替換字符串名稱?

struct City { var name: String 
       var imageName: String } 

class firstViewController: UIViewController 

let cities = [City(name:"City00", imageName:"city_00"), 
       City(name:"City01", imageName:"city_01"), 
       City(name:"City02", imageName:"city_02")] 

在displayViewController,我有一個可變nowCityImages,用於存儲從firstViewcontroller

class displayViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate { 

var nowCityImages: [String] = [] 

選擇的數據現在,我想如果我使用在tableview中

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
{ 
    let myCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CityCell 

    let outCityImages = nowCityImages[indexPath.item] 

    // This is not displaying any images 
    myCell.cityImage.image = UIImage(named:outCityImages) 

    return myCell 
} 

顯示城市形象,我得到以下輸出爲例外

City00 
City02 

,但我不知道如何在tableview中的細胞替代City00 with city_00City02 with city_02,使其顯示圖像。

+0

這可以幫助你:http://stackoverflow.com/questions/25665122/how-to-search-an-array-containing-struct-elements-in-swift –

+0

@JimmyJames,這個問題是爲了搜索,我正在尋找替換 – leaner122

+1

檢查添加或追加字符串到nowCityImages的語句。它應該類似於city.imageName而不是city.name。例如nowCityImages.append(cities [0] .imageName) – bunty

回答

0

如果在最後的數字是2號長:

var str = "City00" 
let index = str.index(str.endIndex, offsetBy: -2) 

var str1 = str.substring(to: index).lowercased() 
var str2 = str.substring(from: index) 
let name = "\(str1)_\(str2)" //city_00 
+0

情況並非總是如此,我只是舉了一個例子來說明我的問題。我想知道如何用他們的圖像名稱替換相應的城市名稱。 – leaner122

+1

在displayViewController中,只有城市名稱。我想你可能會將City object/imageName傳遞給displayViewController而不是城市名稱,或者創建一個按城市名稱獲取城市對象的方法。 – Horst

+0

實際上解決了這個問題 – leaner122

0

你可以改變越來越nowCityImages的代碼,這

var nowCityImages: [String] = cities.filter(){$0.imageName} 

現在,只要你想它會返回圖像名稱。