Swift如何将自定义数组转换为枚举数组

时间:2019-01-18 10:53:56

标签: arrays swift enums

我有一个使用自定义数组在表视图中填充数据的应用程序。我想将此数据分为两个部分,在表格视图中。通过一些教程,找到了我喜欢使用枚举的方法。教程应用可以使用[[String:String]]]()正常运行。

每次将我的数据转换为[[String:String]]]()的尝试均失败,并且我无法将我拥有的数据转换为枚举格式。

下面的代码是我要执行的操作的示例,但是我尝试了许多其他无效的方法。

任何建议将不胜感激。

新代码,当前错误:

“无法将类型'[TableViewController_Main.Category]'的值分配为类型'ArraySlice <[TableViewController_Main.Category]>''

using System;
using System.Configuration;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using qa.WrapperFactory;

namespace UnitTestProject2
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            // Sign in through google first, so we don't have to follow new tabs
            BrowserFactory.InitBrowser("Chrome");
            var y = ConfigurationManager.AppSettings["URL"];
            BrowserFactory.LoadApplication(ConfigurationManager.AppSettings["URL"]);
            BrowserFactory.CloseAllDrivers();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我必须从上面更正我的评论。您的dataView的类型应为[TableSection: [Category]]

现在就setData函数讲几句话。在循环中,您在初始化类别时使用nil合并运算符??。也许我缺少了一些东西,但是我看不到这怎么可能导致致命错误。类别上没有失败的初始化程序。现在,我不完全知道datas是什么以及它来自哪里,但是如果其中的某些属性是可选的,我建议也将它们在“类别”上设为可选。

然后尝试与map一起转换数据。这是一个示例:

var dataView = [TableSection: [Category]]()
var dataViewLoop = (0 ..< 10).map { i -> Category in
  let status = i % 2 == 0 ? "confirmed" : "request"

  return Category(clientName: "\(i)", appType: "\(i)", appDateTime: "nil", status: status, photo: nil)
}

dataView[.appointments] = dataViewLoop.filter({ $0.status == "confirmed" })
dataView[.requests] = dataViewLoop.filter({ $0.status == "request" })