- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到以下警告:
"Cannot assign value of type '[String : AnyObject]' to type 'String' "
对于以下行:
TrueData[counter] = newRow
TrueData
初始化为:
var TrueData = [String]()
和newRow
被初始化为:
var newRow = [String:AnyObject]()
newRow
必须是 AnyObject
那么如何在 for 循环的每次迭代后将其值存储在字符串数组中(代码通过 CSV 文件排序)?
这是评论中建议的整个代码块:
func convertCSV(stringData:String) -> [[String:AnyObject]] {
//for date formatting
var importDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = importDateFormat
var TrueData = [String]()
//dateFormatter.timeZone = NSTimeZone(abbreviation: "GMT")
let rows = cleanRows(stringData: stringData)
if rows.count > 0 {
//data = []
//var TrueData = [String: Any]()
var columnTitles:[String] = []
var columnType:[String] = ["NSDate","Int","Int"]
var counter = 0
columnTitles = cleanFields(oldString: rows.first!)
for row in rows{
let fields = cleanFields(oldString: row)
if fields.count != columnTitles.count {continue}
var newRow = [String:AnyObject]()
for index in 1..<fields.count{ let column = columnTitles[index];
let field = fields[index]; switch columnType[index]
{ case "Int": newRow[column] = Int(field) as AnyObject case
"NSDate": guard let newField = dateFormatter.date(from: field)
else { print ("\(field) didn\'t convert");
continue };
newRow[column] = newField as AnyObject default: //default keeps as
string
newRow[column] = field as AnyObject } };
TrueData[counter] = newRow
counter = counter + 1
} }
else { print("No data in file") };
return TrueData };
最佳答案
如果你想将 trueData 保存为行数组,那么你可能需要像下面这样使用
var TrueData = [[String:AnyObject]]()
var newRow = [String:AnyObject]()
TrueData.append(newRow)
但是如果你想使用 TrueData 作为字典,那么像下面这样,
let counter = "key"
var TrueData = [String: String]()
var newRow = [String:AnyObject]()
TrueData[counter] = newRow
[更新]
我替换了两个地方,一个声明区和添加到数组的地方。只是尝试使用它。
func convertCSV(stringData:String) -> [[String:AnyObject]] {
//for date formatting
var importDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = importDateFormat
/* ------- REPLACED: var TrueData = [String]() ------------- */
var TrueData = [[String:AnyObject]]() /* */
/* --------------------- REPLACED --------------------------- */
//dateFormatter.timeZone = NSTimeZone(abbreviation: "GMT")
let rows = cleanRows(stringData: stringData)
if rows.count > 0 {
//data = []
//var TrueData = [String: Any]()
var columnTitles:[String] = []
var columnType:[String] = ["NSDate","Int","Int"]
var counter = 0
columnTitles = cleanFields(oldString: rows.first!)
for row in rows{
let fields = cleanFields(oldString: row)
if fields.count != columnTitles.count {continue}
var newRow = [String:AnyObject]()
for index in 1..<fields.count{ let column = columnTitles[index];
let field = fields[index]; switch columnType[index]
{ case "Int": newRow[column] = Int(field) as AnyObject case
"NSDate": guard let newField = dateFormatter.date(from: field)
else { print ("\(field) didn\'t convert");
continue };
newRow[column] = newField as AnyObject default: //default keeps as string
newRow[column] = field as AnyObject } };
/* ----------- REPLACED: TrueData[counter] = newRow ---------------- */
TrueData.append(newRow) /* */
/* --------------------- REPLACED --------------------------- */
counter = counter + 1
} }
else { print("No data in file") };
return TrueData
};
关于swift - 如何将值从 "String: Any Object"存储到空字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50122734/
我正在尝试创建一个程序,其中字符串的前三个字符重复给定次数,如下所示: foo('Chocolate', 3) # => 'ChoChoCho' foo('Abc', 3) # => 'AbcAbcA
我有以下字符串: std::string str = "Mode:AAA:val:101:id:A1"; 我想分离一个位于 "val:" 和 ":id" 之间的子字符串,这是我的方法: std::st
DNA 字符串可以是任意长度,包含 5 个字母(A、T、G、C、N)的任意组合。 压缩包含 5 个字母(A、T、G、C、N)的 DNA 字母串的有效方法是什么?不是考虑每个字母表 3 位,我们可以使用
是否有一种使用 levenstein 距离将一个特定字符串与第二个较长字符串中的任何区域进行匹配的好方法? 例子: str1='aaaaa' str2='bbbbbbaabaabbbb' if str
使用 OAuth 并使用以下函数使用我们称为“foo”(实际上是 OAuth token )的字符串加密 key public function encrypt( $text ) { // a
我是一名优秀的程序员,十分优秀!