Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么Xcode对两个相似的变量声明有不同的处理,第一个只显示警告,第二个显示警告+;错误?_Ios_Xcode_Swift - Fatal编程技术网

Ios 为什么Xcode对两个相似的变量声明有不同的处理,第一个只显示警告,第二个显示警告+;错误?

Ios 为什么Xcode对两个相似的变量声明有不同的处理,第一个只显示警告,第二个显示警告+;错误?,ios,xcode,swift,Ios,Xcode,Swift,我正在研究快速访问控制。我已经想出了下面的代码 private class Random{} class Person { public var name: String = "John" public var aRandom = Random() } 当我声明public-var-name:String=“John”时,它只显示一条警告,说为内部类声明一个公共var 当我声明public var aRandom=Random()时,Xcode还显示了一个错误,它说:属性必须

我正在研究快速访问控制。我已经想出了下面的代码

private class Random{}

class Person {
    public var name: String = "John"
    public var aRandom = Random()
}
当我声明
public-var-name:String=“John”
时,它只显示一条警告,说
为内部类声明一个公共var

当我声明
public var aRandom=Random()
时,Xcode还显示了一个错误,它说:
属性必须声明为私有,因为它的类型“Random”使用私有类型。
。我只是想知道为什么Xcode对这两条语句的处理方式不同,第一条语句只显示警告,第二条语句显示警告+错误

不能将公共变量定义为具有内部或私有类型,因为该类型可能不适用于使用公共变量的任何地方

摘自:苹果公司《Swift编程语言(Swift 2.2预发行版)》,iBooks

Private的意思是隐藏细节或依赖项,以便将来可以在不影响代码用户的情况下更改它们。由于标记为私有,
Random
仅对该文件中的code可见。这与您将该类型的变量公开并在模块或框架外部可见的意图相矛盾

name
没有错误的原因是其类型为
String
,这是Swift标准库提供的公共类型。它对所有Swift代码都是全局可用的。

不能将公共变量定义为具有内部或私有类型,因为该类型可能在使用公共变量的任何地方都不可用

摘自:苹果公司《Swift编程语言(Swift 2.2预发行版)》,iBooks

Private的意思是隐藏细节或依赖项,以便将来可以在不影响代码用户的情况下更改它们。由于标记为私有,
Random
仅对该文件中的code可见。这与您将该类型的变量公开并在模块或框架外部可见的意图相矛盾


name
没有错误的原因是其类型为
String
,这是Swift标准库提供的公共类型。所有Swift代码均可在全球范围内使用。

非常感谢您的宝贵意见。但我只是想知道为什么第一个语句(即public var name:String=“john”)只有一个警告?修改了我的回答,以讨论
名称
。非常感谢您的有益评论。但我只是想知道为什么第一个语句(即public var name:String=“john”)只有一个警告?修改了我的回答,讨论了
name