Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.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 Swift中的对象初始化_Ios_Swift_Object - Fatal编程技术网

Ios Swift中的对象初始化

Ios Swift中的对象初始化,ios,swift,object,Ios,Swift,Object,我有以下代码: var myBundle:NSBundle myBundle = NSBundle.mainBundle() // what is the role of this line ?? if let path = myBundle.pathForResource("CellDescriptor", ofType: "plist"){ var cellDescriptors: NSMutableArray! cellDescriptors = NSMutabl

我有以下代码:

var myBundle:NSBundle
myBundle = NSBundle.mainBundle() // what is the role of this line ??

if let path = myBundle.pathForResource("CellDescriptor", ofType: "plist"){

     var cellDescriptors: NSMutableArray! 
     cellDescriptors = NSMutableArray(contentsOfFile: path)
}
为什么我要使用这行代码
myBundle=NSBundle.mainBundle()
?我读到它正在初始化
myBundle
对象。但这到底意味着什么

为什么不初始化
myBundle
对象,就不能调用
pathForResource
函数


谢谢。

让我们一步一步地思考这一行:

myBundle = NSBundle.mainBundle()
您声明了类型为NSBundle的变量myBundle。现在需要使用适当的实例对象初始化这个变量。例如,您可以使用构造函数。但对于某些类,您有“静态构造函数”。如果您没有将变量设置为正确的对象,那么默认情况下它的值为零,所以您无法访问实例方法

NSBundle.mainBundle() 
-下面是对NSBundle类的mainBundle方法(静态方法)的调用,该方法返回正确的实例(在本例中,它是应用程序的主捆绑包。从文档:

对应于要删除的捆绑包目录的NSBundle对象 包含当前可执行文件。此方法可能返回有效的捆绑包 对象,即使对于未绑定的应用程序也是如此。如果绑定 无法创建对象,因此请始终检查返回值


希望这有帮助。

让我们一步一步地思考这一行:

myBundle = NSBundle.mainBundle()
您声明了类型为NSBundle的变量myBundle。现在您需要使用适当的实例对象初始化此变量。您可以使用例如构造函数。但对于某些类,您有“静态构造函数”。如果您没有设置适当的变量对象,则默认情况下它的值为零,因此您无法访问实例方法

NSBundle.mainBundle() 
-下面是对NSBundle类的mainBundle方法(静态方法)的调用,该方法返回正确的实例(在本例中,它是应用程序的主捆绑包。从文档:

对应于要删除的捆绑包目录的NSBundle对象 包含当前可执行文件。此方法可能返回有效的捆绑包 对象,即使对于未绑定的应用程序也是如此。如果绑定 无法创建对象,因此请始终检查返回值


希望这能有所帮助。

谢谢@Doro。你能告诉我将初始化什么
myBundle
,即我们实际上是想初始化什么吗?请耐心听我说,因为我是初学者。NSBundle类有许多创建bundle对象的方法,但你最常使用的方法是mainBundle方法。主bundle代表包含当前正在执行的代码的bundle目录。因此,对于应用程序,主bundle对象允许您访问应用程序附带的资源。@DShah,当然。我刚才解释了存在的代码,如问题所述。对不起,但我没有投反对票。我刚刚向@Pawandeep提供了ansSingh@DShah,@Doro我从你的评论中推断出的初始化
myBundle
对象将授予对应用程序主捆绑包的访问权。但是,在编码中,它实际上意味着什么,它定义了变量、NSBundle类的指针,没有这些变量,您就无法访问定位资源吗?谢谢@Doro。您能告诉我将初始化什么
myBundle
我们究竟在尝试初始化它什么?请耐心听我说,因为我是一个初学者。NSBundle类有许多创建bundle对象的方法,但您最常用的方法是mainBundle方法。mainBundle表示包含当前执行代码的bundle目录。因此,对于应用程序,mainBundle对象为您提供访问应用程序附带的资源。@DShah,当然。我只是解释了存在的代码,如问题所述。对不起,但我没有投反对票。我刚刚给@Pawandeep提供了ansSingh@DShah,@Doro我从您的评论中推断,初始化
myBundle
对象将允许访问应用程序主捆绑包。但它在编码中的实际意义是什么?它是否定义了变量、NSBundle类的指针,如果没有这些变量,您将无法访问定位资源?请参阅:请参阅: