是否可以在目标c中动态创建变量?

时间:2017-03-14 15:47:53

标签: objective-c web-services uitableview

我正在开发应用程序,客户端询问是否可以构建应用程序,以便应用程序中的表单可以根据需要仅更改Web服务响应进行动态更改。我在PHP中思考类似于变量变量的东西。

    [{
        "field_item_2": "abc",
        "field_item_3": "123",
        "field_item_4": "test answer",
        "field_item_5": "",
        "field_item_6": 100,
        "field_item_7": 1,
        "comments": "Comments go here.",
        "users": "John Smith, Jane Doe, Tim Johnson",

目前,我已经设置了一系列属性以匹配网络服务值,但这不容易扩展,理想情况下,我希望能够动态获取tableview设置网络服务响应

    "complex_data_1": [{
        "cd1_format": "textfield",
        "cd1_format_id": 12,
        "cd1_question": "What is your favorite color",
        "cd1_answer": ""
    }],
    "complex_data_2": [{
        "cd2_format": "textfield",
        "cd2_format_id": 12,
        "cd2_question": "What is your favorite car",
        "cd3_answer": ""
    }],
    "complex_data3": [{
        "cd3_format": "datePicker",
        "cd3_format_id": 10,
        "cd3_question": "What is your birthdate",
        "cd3_answer": ""
    }]
}]

为了更简洁,对于给定的视图控制器,我可以在其中填充大小为n行的UITableView,其中包含未知的自定义单元格数组* - 是否可以创建变量/属性以准确记录数据该UI并将其保存/发送回服务器,在返回Web服务响应时创建数据源的变量?

*表格行数和UITableViewCells类型可以从Web服务中的数据发回和显示

2 个答案:

答案 0 :(得分:2)

是的,这不仅是可能的,而且是不可避免的。您将把JSON转换为字典数组,每个字典将在您的自定义单元格中描述UIControl。将该数组视为表的数据源。

还有一个对象需要来描述一个UIControl,那就是它的。使字典变为可变(这是解析JSON时的一个选项,“mutableContainers”)并在字典中添加一个额外的密钥,称之为@"value"

您制作的自定义单元格将是您动态添加的控件的代理,当他们检测到控件的值发生更改时,他们将更新dictionary[@"value"]

答案 1 :(得分:0)

我喜欢图书馆XLForm这样的事情。

动态创建表单。 您可以在对XLForm rowType

的Web服务响应中的字段类型之间创建1-1映射