好像我遇到了本不应该出现的问题……但我想寻求帮助。
这里有一些我没有得到的解释。
具有两个简单的类,其中一个引用另一个,如下所示;
class User {
lazy var name: String = ""
lazy var age: Int = 0
init (name: String, age: Int) {
self.name = name
self.age = age
}
}
class MyOwn {
let myUser: User = User(name: "John", age: 100)
var life = myUser.age
//Cannot use instance member 'myUser' within property initializer
//property initializers run before 'self' is available
}
我收到注释的编译错误。有人可以告诉我该怎么办吗?
非常感谢任何好人的帮助!
正如 vadian 正确指出的 那样, 您应该init
在以下情况下创建一个:
class MyOwn {
let myUser: User
var life: Int
init() {
self.myUser = User(name: "John", age: 100)
self.life = myUser.age
}
}
您不能为 依赖 于另一个实例属性的存储属性提供默认值。
问题内容: 我使用JavaScript为节点项目编写了以下代码,但是在测试模块时遇到错误。我不确定错误是什么意思。这是我的代码: 当我尝试运行此模块时,它将引发以下错误: 我不太明白这意味着什么,以及我能做些什么来解决这个问题。 问题答案: 由于它是一个对象,因此将值分配给其属性的方法是使用。 更改,以修复错误。
我有一个场景,我试图在Cordova的deviceready事件上初始化我的应用程序。现在,这个初始化序列需要几秒钟的时间来执行。这导致总发射时间远大于预期。我的问题是,是否可以简单地与即将推出的Cordova API和插件并行运行此初始化序列? 注意:初始化没有利用API或插件中的任何内容,所以我不能简单地在加载时立即运行它,而不是在onDeviceReady上运行它吗?
问题内容: 我很好奇,无论如何在init方法内部调用一个用于设置类实例属性的方法。本质上,我只是有一个类来对UIView进行子类化,并在init中添加了一些子视图,而其中一些子视图是该类的实例变量。 现在出现了问题,我无法在初始化类的内部属性之前调用super init(在super.init调用时未初始化属性’self.collectionView’),但是在调用之前,我也无法调用自定义方法来初
我有以下代码类: 但是,我得到这个编译错误: 关键字“this”在当前上下文中不可用 我可以通过简单地不使用自动属性初始值设定项来修复它,并显式地将其移动到构造函数中: 为什么会这样?在 IL 中,自动属性初始值设定项实际上不是被转换为构造函数代码吗?
我在想,是否可以使用对< code>this关键字的引用来初始化一个(引用类型)属性(当它的值为< code>null),而不使用构造函数。< br >在某些情况下,我不想使用构造函数来初始化属性,因此,如果没有人访问它,它的值将不会被创建。< br >此外,如果可能的话,我不喜欢在构造函数中将属性声明与其初始化分开。 一个典型的例子是MVVM模式编程的命令声明: 我不喜欢写三倍的成员的名字… 我
问题内容: 我有一个静态util类,它对敏感数据进行一些字符串操作。在使用此类之前,我需要使用我喜欢存储在文件中的值(例如用户名/密码)初始化某些静态变量。 我不太熟悉Java 中文件的加载方式,尤其是在 Spring DI 容器之外。任何人都可以帮助我/如何做到这一点? 谢谢! 另外: 文件的精确位置是未知的,但是它将在类路径上。有点像 问题答案: 首先,从中获取要加载的属性。这可以来自多个位置