let filePath: Nsstring! let _fileHandle: NSfileHandle! let _totalfileLength: CUnsignedLongLong!init?(filePath: String){ if let fileHandle = NSfileHandle(forReadingAtPath: filePath) { self.filePath = filePath self._fileHandle = NSfileHandle(forReadingAtPath: filePath) self._totalfileLength = self._fileHandle.seekToEndOffile() } else { return nil //The error is on this line }}
如何解决这个问题,所以我没有得到这个错误:
解决方法 您可以使用变量和调用super.init()(在访问其属性之前创建self):All stored propertIEs of a class instance must be initialized before
returning nil from an initializer
class Test: NSObject { var filePath: Nsstring! var _fileHandle: NSfileHandle! var _totalfileLength: CUnsignedLongLong! init?(filePath: String) { super.init() if let fileHandle = NSfileHandle(forReadingAtPath: filePath) { self.filePath = filePath self._fileHandle = NSfileHandle(forReadingAtPath: filePath) self._totalfileLength = self._fileHandle.seekToEndOffile() } else { return nil } }}
但是,如果你打算坚持你的版本与常量,那么它是我的舒适区,也许this answer可能会有所帮助.
总结以上是内存溢出为你收集整理的swift – 必须初始化类实例的所有存储属性,然后才能从初始化程序返回nil全部内容,希望文章能够帮你解决swift – 必须初始化类实例的所有存储属性,然后才能从初始化程序返回nil所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)