【问题标题】:how to iterate literal dictionary in cappucino objective-j如何在卡布奇诺objective-j中迭代文字字典
【发布时间】:2016-12-05 16:01:35
【问题描述】:

请帮忙在卡布奇诺环境中迭代文字字典。谢谢

var userDict = @{@"name": @"Jack",@"secondName": @"Buck",@"name":  @"Jacob",@"secondName": @"Smith"};

for (var righe in userDict){

console.log(righe.name + righe.secondName);
}
output NaN

【问题讨论】:

    标签: cappuccino objective-j


    【解决方案1】:

    我可能会这样做:

    for (var key in [userDict allKeys])
    {
        console.log(key, userDict[key]);
    }
    

    但是你的字典看起来不对;这个:

    @{
        @"name":         @"Jack",
        @"secondName":   @"Buck",
        @"name":         @"Jacob",
        @"secondName":   @"Smith"
    };
    

    将覆盖 namesecondName 索引并导致:

    @{
        @"name":         @"Jacob",
        @"secondName":   @"Smith"
    };
    

    您可能想要CPArray 中的CPDictionary

    var users = [
        @{
            @"name":         @"Jacob",
            @"secondName":   @"Smith"
        },
        @{
            @"name":         @"Jacob",
            @"secondName":   @"Smith"
        }
    ];
    

    然后如果你循环users;对于循环中的每个步骤,您都会获得一个用户字典,并且您可以处理它的 ' 索引(属性)。 由于CPArrayCPDictionary 都与它们的本地javascript 对应物免费桥接,您仍然可以这样做:

    for (var ix = 0; ix < users.length; ix ++)
    {
       var user = users[ix];
       console.log(user.name, user.secondName);
    }
    

    希望这会有所帮助。

    【讨论】:

    • 这看起来不错!将 Objective-c 和 js 混合在一起看起来非常迷人。默认情况下,我会写 user.count ; ) 我有点困惑,但我认为很快我就可以带来我的网络项目了。谢谢你。最后一个问题:Cappuccino 有自动补全 ide 吗?谢谢你了
    • @sundsx:有一些文本编辑器扩展提供有限的自动完成功能,但我不知道目前有任何完整的“智能感知”,如 IDE。就我个人而言,我主要使用 textmate (macromates.com) 和 atom (atom.io),它们的支持都有限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    相关资源
    最近更新 更多