- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用具有两列的 tableView 构建一个应用程序(一列显示字符串,另一列显示每个字符串的复选框)。这些字符串来自 [AnyObject] 变量。我尝试了很多方法将 [AnyObject] 的结果插入 NsMutableDictionnary (由 NsTableView 使用),但没有一个起作用。我必须使用正确数量的对象(与 [AnyObject] 的结果相关)手动构建 dic 才能使其工作,但我希望 dic 能够自动构建自身。
下面是代码示例,如果 [AnyObject] 由 4 个元素组成,则该代码可以正常工作。 TableView 列名称为“jobs”和“unload”:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate,NSTableViewDataSource,NSTableViewDelegate {
@IBOutlet weak var window: NSWindow!
@IBOutlet weak var myTableView: NSTableView!
var dataArray:[NSMutableDictionary] = [["jobs": "", "unload": 0],["jobs": "", "unload": 0],["jobs": "", "unload": 0],["jobs": "", "unload": 0]];
func applicationDidFinishLaunching(aNotification: NSNotification) {
...
...
...
var ctlelems:[AnyObject] = grepOut!.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
dataArray = [["jobs": "ctlelems[0]", "unload": 0],["jobs": "ctlelems[1]", "unload": 0],["jobs": "ctlelems[2]", "unload": 0],["jobs": "ctlelems[3]", "unload": 0]];
}
func applicationWillTerminate(aNotification: NSNotification) {
}
func numberOfRowsInTableView(aTableView: NSTableView) -> Int
{
return dataArray.count
}
func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject?
{
let object = dataArray[row] as NSMutableDictionary
if ((tableColumn!.identifier) == "unload")
{
println(object)
return object[tableColumn!.identifier] as? Int!
}
else
{
return object[tableColumn!.identifier] as? String!
}
}
func tableView(tableView: NSTableView, setObjectValue object: AnyObject?, forTableColumn tableColumn: NSTableColumn?, row: Int)
{
dataArray[row].setObject(object!, forKey: (tableColumn?.identifier)!)
}
}
我想做以下事情,
var x: Int = 0
for lines in ctlelems {
dataArray = [["jobs": ctlelems[x], "unload": 0]];
x=x+1
}
但它不起作用。大多数时候我会收到“Found nill”错误,或者只显示 [AnyObject] 的最后一个元素。有人可以帮我吗?
最佳答案
dataArray = [["jobs": ctlelems[x], "unload": 0]];
这意味着您在每次迭代时重新定义dataArray
。您应该改为附加到 dataArray
。
声明并初始化您的dataArray
:
var dataArray = [Dictionary<String, Any>]()
并附加到它:
for line in ctlelems {
dataArray.append(["jobs": line, "unload": 0])
}
或者以更快速的方式:
dataArray = ctlelems.map { ["jobs": $0, "unload": 0] }
关于swift - 将 [AnyObject] 插入 [NSMutableDictionary],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31280147/
此代码将(在 Swift 1.2 中)在最后一行失败: import Foundation let dictionary1 = [String: AnyObject]() NSUserDefaults
我需要做一些简单的事情,比如将 [AnyObject?] 转换为 [AnyObject]。所以数组中的可选值应该被解包,如果为 nil 则被踢出数组。在 Swift 中有一种简单的方法可以做到这一点吗
我正在尝试使用 UIActivityViewController 共享联系人 .vcf 文件。但我收到“任何对象?”与“AnyObject”不同 下面是我的代码行: let dirs : [Strin
import Cocoa class Brain{ var internalProgram = [AnyObject]() var program:AnyObject{
如何将协议(protocol)实例数组向下转换为 AnyObject?我在下面的代码示例中尝试了一些更合理的想法。 protocol Nameable : class { var name:
在默认模板中我们可以找到以下代码: func application(application: UIApplication, didFinishLaunchingWithOptions launchO
阅读 Apple 的代码我看到了以下内容(谈论钥匙串(keychain)服务): query[kSecAttrService as String] = service as AnyObject? An
我正致力于从 Objective-C 教程转换此委托(delegate)协议(protocol)函数,但在尝试通过使用下标返回基于键的值来访问字典中的值时遇到错误。我不太确定这里的错误是什么意思。任何
我正在尝试使用 performSegueWithIdentifier 将一些字符串数据传递给 View Controller ,但我收到此错误 Cannot convert value of type
如果你看一下这个函数: typealias JSONDictionary = [String: AnyObject] private func allIdentifiersInJson(json: [
我正在尝试调用一个 Objective-C 方法,该方法采用一个 block ,该 block 使用 NSArray 进行回调。 我得到以下编译错误: AnyObject[] 不是 AnyObject
我正在为 IOS 学习 swift ,当我在 youtube 上做巡回演出时(Swift:Skip Wilson 的 Swift:使用外部数据库和 API)对于外部数据库,我找到了部分: servic
我很难理解为什么 AnyObject 的实例等于 Anyobject 的数组,即为什么这个语句 var one: AnyObject = [AnyObject ]() 有效吗? 最佳答案 用这段代码
我有两段几乎相同的代码让我感到困惑。两者都以令我惊讶的方式运作。第一个作品,如下所示: let HTTPBody = NSJSONSerialization.dataWithJSONObject(js
我正在使用 swift 库 "Sync" from Hyperoslo将 JSON 用户转换为核心数据对象。 let user = JSON.valueForKey("user") Sync.chan
我在 Swift 3.0 中工作,我的数组有问题。每行包含一个包含 2 个值的字典。 当我想更改此值时,我收到此消息: “无法使用类型为‘AnyObject’的索引下标类型为‘[AnyObject]’
let otherArray:[AnyObject] = ["a","aa","aaa"] let otherArrayElemnt = otherArray[0] let myArr
我在我的 AppDelegate.swift 文件中发现了这个错误,它出现在 AppDidFinishLaunchingWithOptions 函数中。它在来自 Parse 框架的一行代码上引发错误。
我正在尝试将我当前的项目转换为 Swift 3,但遇到了有关 objectForKey 的问题至 objectFor转换。 myData 的类型是 AnyObject 之前: let x = myDa
我有一个方法: func tableAsDictionary() -> [String: AnyObject] 然后我需要测试这个: let tableDictionary = table.table
我是一名优秀的程序员,十分优秀!