3

これを作り直すのを手伝ってください

 if let field = parent_obj?.getFieldForCode(code) {
    if let stored_value = field["value"] as? String {

オプションの連鎖構文に 1 行で変換します。私はこのようにそれをやろうとしました:

let stored_value = parent_obj?.getFieldForCode(code)?["value"] as? String

エラーが発生しました:

Type 'String' does not conform to protocol 'NSCopying'

これは私の関数ヘッダーです:

func getFieldForCode(code: String) -> NSDictionary? 

出来ますか?NSArrays と NSDictionaries を使用するときはいつでも私のコードがひどく見えるので、私はそれを尋ねます:

if let code = self.row_info["code"] as? String {
        if let value_field = self.row_info["value_field"] as? String {
            if let field = parent_obj?.getFieldForCode(code) {
                if let stored_value = field["value"] as? String {
                    if let fields = self.fields_set{
                        if let current_value = fields[indexPath.row][value_field] as? String {

何かアドバイスはありますか?

4

1 に答える 1