您好,欢迎来到朝湓教育网。
搜索
您的当前位置:首页在Swift中使用JavaScript的方法和技巧详细介绍

在Swift中使用JavaScript的方法和技巧详细介绍

来源:朝湓教育网


//JSON
[
 { "first": "Grace", "last": "Hopper", "year": 1906 },
 { "first": "Ada", "last": "Lovelace", "year": 1815 },
 { "first": "Margaret", "last": "Hamilton", "year": 1936 }
]
//JavaScript
var loadPeopleFromJSON = function(jsonString) {
 var data = JSON.parse(jsonString);
 var people = [];
 for (i = 0; i < data.length; i++) {
 var person = Person.createWithFirstNameLastName(data[i].first, data[i].last);
 person.birthYear = data[i].year;
 people.push(person);
 }
 return people;
}
  • 动手一试

  • 现在你只需加载JSON数据,并在JSContext中调用,将其解析到Person对象数组中,再用Mustache模板渲染即可:

    //Objective-C
    // get JSON string
    NSString *peopleJSON = [NSString stringWithContentsOfFile:... encoding:NSUTF8StringEncoding error:nil];
    // get load function
    JSValue *load = context[@"loadPeopleFromJSON"];
    // call with JSON and convert to an NSArray
    JSValue *loadResult = [load callWithArguments:@[peopleJSON]];
    NSArray *people = [loadResult toArray];
    // get rendering function and create template
    JSValue *mustacheRender = context[@"Mustache"][@"render"];
    NSString *template = @"{{getFullName}}, born {{birthYear}}";
    // loop through people and render Person object as string
    for (Person *person in people) {
     NSLog(@"%@", [mustacheRender callWithArguments:@[template, person]]);
    }
    // Output:
    // Grace Hopper, born 1906
    // Ada Lovelace, born 1815
    // Margaret Hamilton, born 1936
    //Swift
    // get JSON string
    if let peopleJSON = NSString(contentsOfFile:..., encoding: NSUTF8StringEncoding, error: nil) {
     // get load function
     let load = context.objectForKeyedSubscript("loadPeopleFromJSON")
     // call with JSON and convert to an array of `Person`
     if let people = load.callWithArguments([peopleJSON]).toArray() as? [Person] {
    
     // get rendering function and create template
     let mustacheRender = context.objectForKeyedSubscript("Mustache").objectForKeyedSubscript("render")
     let template = "{{getFullName}}, born {{birthYear}}"
    
     // loop through people and render Person object as string
     for person in people {
     println(mustacheRender.callWithArguments([template, person]))
     }
     }
    }
    // Output:
    // Grace Hopper, born 1906
    // Ada Lovelace, born 1815
    // Margaret Hamilton, born 1936

    Copyright © 2019- chaopen.cn 版权所有

    违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

    本站由北京市万商天勤律师事务所王兴未律师提供法律服务