如何解决错误"模糊引用成员'下标'"

时间:2016-10-14 04:40:55

标签: swift dictionary swift3

我收到错误:

  

对成员'下标'

的模糊引用

在以下代码中:

let jsonObject = try JSONSerialization.jsonObject(with: data, options: [])
guard   let jsonDictionary = jsonObject as? [NSObject: AnyObject], 
        let photos = jsonDictionary["photos"] as? [String: AnyObject], // this line is giving the error
        let photosArray = photos["photo"] as [[String: AnyObject]] else {
 print("Error")
}

以前的帖子建议我将类型从[String: AnyObject]更改为[AnyObjectHashable: Any]。这还没有修复错误。有人可以解释为什么会出现这种错误以及如何解决它?

1 个答案:

答案 0 :(得分:1)

你可以替换它,为了在swift 3中制作字典你可以使用[String:Any]而不是[String:AnyObject]

$(document).ready(function() {

        // SUM PLUGIN
        jQuery.fn.dataTable.Api.register( 'sum()', function ( ) {
            return this.flatten().reduce( function ( a, b ) {
                if ( typeof a === 'string' ) {
                    a = a.replace(/[^\d.-]/g, '') * 1;
                }
                if ( typeof b === 'string' ) {
                    b = b.replace(/[^\d.-]/g, '') * 1;
                }

                return a + b;
            }, 0 );
        } );

        $('#example').DataTable({
            "footerCallback": function () {
                var api = this.api(),
                    columns = [3, 5]; // Add columns here

                for (var i = 0; i < columns.length; i++) {
                    $('tfoot th').eq(columns[i]).html('Total: ' + api.column(columns[i], {filter: 'applied'}).data().sum() + '<br>');
                    $('tfoot th').eq(columns[i]).append('Page: ' + api.column(columns[i], { filter: 'applied', page: 'current' }).data().sum());
                }
            }
        });
    });