我有ViewView和TableView和SearchBar。 在TableView中,有一些用户联系人。
所有联系人都存储在我从JSON获取的数组中。还有用于搜索的单独数组。当用户在SearchBar中输入内容时 - 我使用SearchBar TextField中的字符串过滤我的完整联系人数组。一切看起来都很简单。
但突然有一些新功能被添加到我的应用程序 - 部分。 以前我用一系列用户获得了JSON,每个用户都得到了名字和电话。但是知道我也有段数组,每个部分都有段名和项目数。
之前
{
users: [
{
name: "Jack",
phone: "123-456-78"
},
{
name: "John",
phone: "768-789-98"
},
{
name: "Kate",
phone: "123-879-001"
}
]
}
之后
{
users: [
{
name: "Jack",
phone: "123-456-78"
},
{
name: "John",
phone: "768-789-98"
},
{
name: "Kate",
phone: "123-879-001"
}
],
sections: [
{
title: "Section 1",
itemsCount: 2
},
{
title: "Section 2",
itemsCount: 1
}
}
在这种情况下,为代码添加部分的最佳方法是什么?或者我应该考虑从服务器重组数据结构?
答案 0 :(得分:1)
如果我需要实现您想要的功能,我想我会从服务器重新组织数据结构,如下所示:
dataArray = [
{
title:"section1",
items:[
{
name: "Jack",
phone: "123-456-78"
},
{
name: "John",
phone: "768-789-98"
},
{
name: "Kate",
phone: "123-879-001"
}
]
},
{
title:"section2",
items:[
{
name: "Jack",
phone: "123-456-78"
},
{
name: "John",
phone: "768-789-98"
},
{
name: "Kate",
phone: "123-879-001"
}
]
}
]
然后在iOS中,如果我想要section.count的部分,我只需要dataArray[index][@"items"].count
。
顺便说一句,我只是建议你的想法,但我认为这是最好的方式。
这是对我思考的考验。它工作正常。
这是我的项目共享的网址。click here