我有一个使用自定义数组在表视图中填充数据的应用程序。我想将此数据分为两个部分,在表格视图中。通过一些教程,找到了我喜欢使用枚举的方法。教程应用可以使用[[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();
}
}
}
答案 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" })