Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.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 快速的语法,理解语言的某些部分_Ios_Swift_Syntax - Fatal编程技术网

Ios 快速的语法,理解语言的某些部分

Ios 快速的语法,理解语言的某些部分,ios,swift,syntax,Ios,Swift,Syntax,我已经阅读了有关Swift编程语言的basic,如变量、类、函数等。我不明白的是,当我开始尝试构建应用程序时,是如何设置函数的结构。我猜的是函数,或者我下面列出的内容。我将尽我所能详细阐述 我想了解人们是如何知道的,或者当你试图完成某件事情时,应该把什么放在哪里 例如,我在谷歌上搜索了一个HTTP调用,出现了以下代码: let request = URLRequest(url: NSURL(string: "https://api.nasa.gov/planetary/apod?api_key=

我已经阅读了有关Swift编程语言的basic,如变量、类、函数等。我不明白的是,当我开始尝试构建应用程序时,是如何设置函数的结构。我猜的是函数,或者我下面列出的内容。我将尽我所能详细阐述

我想了解人们是如何知道的,或者当你试图完成某件事情时,应该把什么放在哪里

例如,我在谷歌上搜索了一个HTTP调用,出现了以下代码:

let request = URLRequest(url: NSURL(string: "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY")! as URL)
do {
    // Perform the request
    var response: AutoreleasingUnsafeMutablePointer<URLResponse?>? = nil
    let data = try NSURLConnection.sendSynchronousRequest(request, returning: response)
您在哪里阅读以了解何时使用诸如URLRequest之类的东西,或者如何或何时将url:放在它前面。尽管这只是一个例子,但我注意到在构建swift应用程序时,你们使用了诸如NSUrl、NSObject、URLRequest之类的东西。在文档中,我还没有学到这些东西。我不明白你们怎么知道什么时候该打问号?,或者怎么像上面的例子那样格式化函数

如果我问得不对,我总是可以解释得更多

如果你知道我可以在网上搜索什么,这样我就可以知道我想学什么,那会很有帮助。或者一本教你UIWindows的书,以及使用NSObject和UIWindows之类的东西的基本函数,这些都会很有帮助


困难在于理解API文档。如果您不能理解api文档和语法。你怎么能学会。我想,有时候通过示例学习会更容易。

这是一个非常可怕的示例,因为他们没有正确使用
URL
,他们使用的是不推荐的
NSURLConnection
,即使您确实想使用
sendSynchronousRequest
(您不需要),该代码示例捕获响应的尝试完全不正确

正确的语法是:

let request = URLRequest(url: URL(string: "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY")!)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print(error?.localizedDescription ?? "Unknown error")
        return
    }

    // now use `data` here
}
task.resume()

// but don't try to use `data` here
let request = URLRequest(url: requestedURL)
关于如何理解
URLRequest(url:)
语法的问题,您可以参考。基本上,该文档告诉您,
URLRequest
结构的这个初始化方法采用三个参数,其中第一个参数的名称为
url
(第二个和第三个参数有默认值,所以您不必包含它们)。因此,对于名为
URLRequest
的结构和一个初始化方法,其唯一必需的参数是名为
url
的参数,语法是:

let request = URLRequest(url: URL(string: "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY")!)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print(error?.localizedDescription ?? "Unknown error")
        return
    }

    // now use `data` here
}
task.resume()

// but don't try to use `data` here
let request = URLRequest(url: requestedURL)
其中,
requestedURL
是该请求的
URL
的实例

不过,如果在您更熟悉Swift语言之前很难阅读文档页面,我也不会感到惊讶,因此我建议您首先查看该页面,尤其是。值得注意的是,本章描述了如何使用
init
方法定义类,以及如何使用特定的
init
方法实例化对象。但在浪费时间破译代码之前,请仔细阅读整个指南(和/或通过谷歌找到一些快速教程)


正如瓦迪安所指出的,因为有另一种直接接受
URL
dataTask
格式,我们可以进一步简化:

let url = URL(string: "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    guard let data = data, error == nil else {
        print(error ?? "Unknown error")
        return
    }

    // now use `data` here
}
task.resume()

好吧,因为你的问题还没有结束得太广泛,而且因为它有向上的投票,我会试着给你至少一个开始,让你知道我认为你实际上在问什么

在哪里可以找到这些东西的含义: 首先,对于斯威夫特,你想要阅读。这将为您提供一个非常好的初学者对该语言以及如何使用它的概述。它包括一个包含整个巡演的课程,允许你尝试和实践你所学的东西

接下来,当您看到一些内容时,如
URLRequest
,您可以在中查找它。要获取此文档,您可以搜索名称和文本“developer documentation”。或者,您可以转到并从那里搜索。最后,您可以在Xcode的文档窗口中查找它:从Xcode菜单,窗口->开发人员文档

通常,开发者网站也会提供。这真的很酷,因为你可以下载它,玩它,根据许可证信息,在你自己的代码中使用它。这段代码通常也有注释和描述,帮助您理解它在做什么。示例代码是学习何时以及如何使用遇到的不同函数的一种非常好的方法

尽管如此,对于初学者来说,文档本身(与示例代码分开)可能会非常混乱。然而,随着你获得经验,你会更多地理解它试图告诉你的东西

文档告诉您的是: 让我们浏览一下for
URLRequest

在顶部,您可以看到这是一个
结构
,而不是
。在迅捷之旅中,您将了解其中的差异

在名称
URLRequest
下,您可以看到一个描述。对于新手来说,这里的描述通常是非常清晰的。然而,一些描述之后是关于该项目的详细且非常好的信息。有关这方面的示例,请查看

在页面的右侧,您可以找到该项目何时可用(例如,自iOS 7以来,
URLRequest
已可用)、需要导入哪个框架才能使用它(此处为
Foundation
),以及指向其他信息的链接

“主题”列出了可用于执行各种操作的属性和函数。例如,您可能希望使用
URLRequest
对象“创建请求”或“使用缓存策略”

“关系”为您提供有关该项所符合的继承和协议的信息。这些项显示可以在给定对象中使用的其他属性和方法。同样,这些对初学者来说可能会令人困惑,但你最终会明白的。例如,
URLRequest
符合
Equatabl
init(url: URL, cachePolicy: URLRequest.CachePolicy, timeoutInterval: TimeInterval)
    Creates and initializes a URL request with the given URL and cache policy.
init(url: URL)
URLRequest(url: URL)
let nsURL = NSURL(string: "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY")! as URL
let request = URLRequest(url: nsURL)
let url = URL(string: "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY")
let request = URLRequest(url: url!)
// This is supposed to be a String value - but it's empty right now ("nil").
// Therefore, I put a '?' on the type name to tell Swift that it's a String,
// but it could be nil (meaning it's value is "optional" - it may be there or not)
let nilString: String? = nil

// I'll go ahead and give the string a value here:
nilString = "I'm not nil anymore."

// Now, I'll use this String value - but I told Swift it might be empty!
// I can tell Swift that I'm CERTAIN a value is present by "force unwrapping" it:
// that is, indicating I'm sure it's not nil by adding a '!'
let newString = nilString! + "testing"