Ios 填充tableView的多个数组

Ios 填充tableView的多个数组,ios,nsarray,tableview,Ios,Nsarray,Tableview,我正在使用tableView显示朋友列表。每种类型都存储在一个数组中。 当显示viewController时,我将分别从我的web服务请求每个阵列。(OUT、IN和FRIENDS) 我得到的数据是一个对象数组,每个对象有三个属性:pictureID、profileID和name。 每个数组都显示在一个部分中,但这些部分的顺序很重要。 我希望传出的friend请求在第一部分,传入的在第二部分,friend在第三部分,前提是这些数组中有元素,如果没有,所有其他的将在顺序中向上移动一个位置。我希望你能

我正在使用tableView显示朋友列表。每种类型都存储在一个数组中。
当显示viewController时,我将分别从我的web服务请求每个阵列。(
OUT
IN
FRIENDS

我得到的数据是一个对象数组,每个对象有三个属性:pictureID、profileID和name。
每个数组都显示在一个部分中,但这些部分的顺序很重要。
我希望传出的friend请求在第一部分,传入的在第二部分,friend在第三部分,前提是这些数组中有元素,如果没有,所有其他的将在顺序中向上移动一个位置。我希望你能理解

我现在这样做真的很尴尬。 对于从服务器获得的每个阵列(friendsArray、incomingArray、outgoingArray):

我认为这部分是完全正常的。
但是现在
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;
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;
}
请。。。一定有更容易做到这一点的方法吗? 第节中的
行数也是如此:

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;
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。现在我用同样的方法来计算行数

你能创建一个包含所有对象的字典吗?您可以对数组子项执行三个父项,因此您所要做的就是检查字典是否包含父项,然后检查子项的行数。

是的,但这将使我在
numberOfRowsInSection
中遇到同样的问题。