在表格视图中显示特定类型的数据

时间:2019-03-18 17:53:42

标签: ios swift uitableview

我有一个数组值列表。并且每个对象都有一个type键值。所以在我的表格视图中,我不应该显示特定类型的对象,而我需要显示的所有其他对象。我该怎么办?。

这是我的价值观:

(

        {
        "booking_id" = 1137;
        "category_id" = 6;
        "category_name" = Public;
        type = Public;

    },


        {
        "booking_id" = 1179;
        "category_id" = 1;
        "category_name" = bay range;   
        type = Offerers;

    },
        {
        "booking_id" = 1178;
        "category_id" = 1;
        "category_name" = newYork range;
        type = Offerers;

    },
        {
        "booking_id" = 1137;
        "category_id" = 6;
        "category_name" = Public range;
        type = Public;

    }
)

像上面一样。在我的表格中,从上述值开始。我不应该显示type == "public”。因此,我需要在表格视图中显示所有其他值。我该怎么做。

我尝试检查类型==“ public”。但不确定如何从那里继续。

任何解决方案都会有所帮助。

谢谢。

已更新:我也尝试了以下代码。但这确实有用。

 var detailsarr = NSMutableArray()

var dic = self.detailsarr.object(at: indexPath.section) as! NSArray;

我做的很:

dic = dic.filter { $0["type"] != "Public" }

2 个答案:

答案 0 :(得分:1)

我相信您需要该功能不显示= public的数据

以enum开头,

enum TypeData { case public case offerers }

定义模型

struct ModelData : Codable {
 var booking_id, category_id : Int
 var category_name : String
 var type : TypeDta
}

然后在tableviewcontroller中

var rootData : [ModelData] { didSet {tableViewDataSource = rootData.filter{$0.type != .public}} }

这将是numberOfRows和cellForRowAt的数据源

var tableViewDataSource : [ModelData] = []()

然后致电tableView.reloadData()

答案 1 :(得分:0)

假设您有用于表数据源的此数组

var arr = [Item]()

然后做

arr = arr.filter { $0.type != "Public" }

其中

struct Item {
    let booking_id,category_id:Int
    let category_name,type:String
}

对于字典

 var arr = [[String:Any]]()

 arr = arr.filter { $0["type"] != "Public" }