我使用tableView显示朋友列表。每种类型都存储在一个数组中
当显示viewController时,我将单独从我的网络服务请求每个数组。(OUT
,IN
和FRIENDS
)
我回来的数据是一个对象数组,每个对象有三个属性:pictureID,profileID和name。
每个数组都显示在一个部分中,但这些部分的顺序很重要
我希望传出的朋友请求在第一部分,在第二部分传入,在第三部分传递朋友,前提是这些数组中有元素,如果没有,所有其他将在顺序中移动一个位置。我希望你明白......
我现在这样做的方式真的很尴尬。 对于我从我的服务器获取的每个数组(friendsArray,incomingArray,outgoingArray):
for (NSDictionary*dict in data){
User *friend = [User new];
friend.profileID = [dict objectForKey:@"profileID"];
friend.pictureID = [dict objectForKey:@"pictureID"];
friend.name = [dict objectForKey:@"name"];
[friendsArray addObject:friend];
}
我认为这部分是完全正常的
但现在numberOfSectionsInTableView
:
if (outgoingArray.count > 0 && incomingArray.count == 0 && friendsArray.count == 0) {
return 1;
}
if (outgoingArray.count == 0 && incomingArray.count > 0 && friendsArray.count == 0) {
return 1;
}
if (outgoingArray.count == 0 && incomingArray.count == 0 && friendsArray.count > 0) {
return 1;
}
if (outgoingArray.count > 0 && incomingArray.count > 0 && friendsArray.count == 0) {
return 2;
}
if (outgoingArray.count > 0 && incomingArray.count == 0 && friendsArray.count > 0) {
return 2;
}
if (outgoingArray.count == 0 && incomingArray.count > 0 && friendsArray.count > 0) {
return 2;
}
if (outgoingArray.count > 0 && incomingArray.count > 0 && friendsArray.count > 0) {
return 3;
}
//default
return 0;
请......必须有办法更容易地做到这一点?
同样适用于numberOfRowsInSection
:
switch (section) {
case 0:
if (outgoingArray.count > 0){
return outgoingArray.count;
}else if (incomingArray.count > 0){
return incomingArray.count;
}else if (friendsArray.count > 0){
return friendsArray.count;
}else{
return 0;
}
break;
case 1:
if (outgoingArray.count > 0 && incomingArray.count > 0){
return incomingArray.count;
}
if (outgoingArray.count == 0 && incomingArray.count > 0) {
return friendsArray.count;
}
case 2:
return friendsArray.count;
default:
return 0;
break;
}
当用户选择一个小区时,我仍然遇到问题。我需要知道所选配置文件的用户ID,因为我将其传输到下一个viewController。现在我以相同的方式实现这一点,即获得行数。
答案 0 :(得分:0)
你能创建一个包含所有对象的字典吗?您可以使用数组子项执行三个父键,因此您只需检查字典是否包含父键,然后检查子项的行数。