我有以下代码,我对此错误消息感到困惑:
实例成员'mydate'不能用于'TableViewController'类型
码:
class TableViewController: UITableViewController {
let mydate = NSDate()
let items = [
(1, 9, 7, "A", mydate),
(2, 9, 7, "B", mydate),
(3, 9, 7, "C", mydate),
(4, 9, 7, "D", mydate)
]
Run Code Online (Sandbox Code Playgroud)
当我写下面的内容时,我可以构建它,但我不知道为什么oder片段不起作用:
class TableViewController: UITableViewController {
let mydate = NSDate()
let items = [
(1, 9, 7, "A", nil),
(2, 9, 7, "B", mydate),
(3, 9, 7, "C", mydate),
(4, 9, 7, "D", mydate)
]
Run Code Online (Sandbox Code Playgroud) 我现在已经多次出现这个错误了,我使用了不同的解决方法,但我真的很好奇它为什么会发生.基本情况如下:
class SomeClass {
var coreDataStuff = CoreDataStuff!
lazy var somethingElse = SomethingElse(coreDataStuff: coreDataStuff)
}
Run Code Online (Sandbox Code Playgroud)
所以我理解我不能在类完全初始化之前使用self,但是在这种情况下我使用self属性coreDataStuff初始化一个懒惰的var,直到我的实例准备好才会发生.
任何人都可以解释我为什么会收到
Instance member can not be used on type错误?
在Core Audio Recorder 示例中,该AudioQueueInputCallback函数被编写为类之外的变量绑定Recorder。我试图在结构中使用它,但我无法访问任何实例方法。它给出了错误,实例成员不能用于类型。
struct Recorder {
private var log = Logger()
private let utils = Utils()
func record() {
// ...
AudioQueueNewInput(&recordFormat, audioQueueInputCallback, &recorder, nil, nil, 0, &queue)
}
private let audioQueueInputCallback: AudioQueueInputCallback = { (inUserData: UnsafeMutableRawPointer?, inQueue: AudioQueueRef,
inBuffer: AudioQueueBufferRef, inStartTime: UnsafePointer<AudioTimeStamp>,
inNumPackets: UInt32, inPacketDesc: UnsafePointer<AudioStreamPacketDescription>?) in
log.debug() // <-- error: instance member cannot be used on type Recorder
}
Run Code Online (Sandbox Code Playgroud)
如何audioQueueInputCallback在结构内部写入以便可以在其中访问实例变量?
更新:如果我将 var 更改为 lazy 为:
private lazy …Run Code Online (Sandbox Code Playgroud) 我一直有一个奇怪的错误,并没有运气试图解决它.我有一些链接文件,我在一个文件(ViewController)中调用一个函数,该文件在另一个文件(Sign.swift)中定义.该函数Sign.swift创建另一个文件(GameState.swift)中定义的输出.我不确定这有什么问题,我做了很多研究,甚至这个答案都没有帮助.(代码下的错误).
ViewController.swift:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var computerLabel: UILabel!
@IBOutlet weak var output: UILabel!
@IBOutlet weak var rockButton: UIButton!
@IBOutlet weak var paperButton: UIButton!
@IBOutlet weak var scissorsButton: UIButton!
@IBOutlet weak …Run Code Online (Sandbox Code Playgroud)