带有前缀的对象的调用元素

O.布亚万(O. Boujaouane)

我正在开发Swift中的应用程序,并且我有一个文件ToursObject.swift:

import Foundation

class ToursObject {

    var nameFr: String!;
    var nameEn: String!;
    var nameEs: String!;
    var nameIt: String!;

    init(json: NSDictionary) {

        self.nameFr = json["name_fr"] as? String;
        self.nameEn = json["name_en"] as? String;
        self.nameEs = json["name_es"] as? String;
        self.nameIt = json["name_it"] as? String;

    }

}

在我的tableViewController中,我有以下代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    // custom cell
    let cell = tableView.dequeueReusableCellWithIdentifier("toursCellReuseIdentifier") as! ToursTableViewCell;

    // here i get the actual preferredLanguage from previous screen which propose en, fr, it and es
    let codeCountry = NSLocale.preferredLanguages()[0] as String;
    // if we print we will have En, Fr, It or Es for codeCountry

    // I want do something like that but of course when i build I have this error message from xCode : Value of type 'ToursObject" has no member 'name'
    cell.titleLabel.text = (self.arrayOfAvailableToursObject[indexPath.item].name+codeCountry);
    // work correctly because no concatenation on the name of member
    cell.descriptionLabel.text = (self.arrayOfAvailableToursObject[indexPath.item].nameEn);

    return cell;
}

问题是这一行,因为我不知道如何进行串联以调用字典的好键:

cell.titleLabel.text = (self.arrayOfAvailableToursObject[indexPath.item].name+codeCountry);

我认为不可能像我想的那样做,但是还有另一种解决方案?

预先感谢您的帮助。

科林

那么问题是您需要按语言动态访问事物吗?在这种情况下,您可以通过将JSON反序列化为具有具体属性的对象来为自己做更多的工作。为什么不让它保持动态?

class ToursObject {

    var nameForCountry: [String:String]!;

    init(json: NSDictionary) {

        self.nameForCountry = // deserialize into your typed dictionary;

    }

}

然后,您可以按以下方式访问:

cell.titleLabel.text =     
     self.arrayOfAvailableToursObject.nameForCountry[codeCountry]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调用带有序列化对象的服务方法

来自分类Dev

使用带有lxml前缀的fromstring()

来自分类Dev

带有前缀的LESS过渡混合

来自分类Dev

调用带有可变数量参数的类对象

来自分类Dev

获取带有数组和对象的元素

来自分类Dev

CakePHP带有前缀路由的相对链接

来自分类Dev

检查带有前缀和后缀的单词

来自分类Dev

git log-带有前缀的分支

来自分类Dev

带有特殊前缀/后缀的调用函数

来自分类Dev

带有前缀的Symfony主义(迁移)

来自分类Dev

如何爆炸带有前缀的结构列?

来自分类Dev

并行调用带有参数向量的元素向量的成员函数

来自分类Dev

调用带有变量的javascript类对象

来自分类Dev

python:带有前缀“。”的模块名称

来自分类Dev

带有可观察对象的角度同步调用

来自分类Dev

带有无名元素的JSON对象

来自分类Dev

Lexer处理带有行号前缀的行

来自分类Dev

使用SKAction调用对象中带有消息的方法

来自分类Dev

下划线_.flatten带有要被展平对象的前缀

来自分类Dev

调用带有序列化对象的服务方法

来自分类Dev

使用带有lxml前缀的fromstring()

来自分类Dev

带有“模块”对象的TypeError不可调用

来自分类Dev

将带有元素的对象添加到数组

来自分类Dev

列出带有固定前缀的shell变量

来自分类Dev

检查带有前缀和后缀的单词

来自分类Dev

git log-带有前缀的分支

来自分类Dev

如何从带有std :: string的对象中调用函数

来自分类Dev

WebpackHTMLPlugin 输出带有前缀的构建引用

来自分类Dev

如何在 PHP Xpath 中获取带有命名空间前缀的元素名称