我在swift项目中遇到错误 连续陈述需要用;
分隔var request: NSURLRequest(NSURL(String: "https://portal.pfs-ltd.org/SyncCharityData"))
var response: NSData(NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil))
var jsonParsingError: NSError?
var jsonResponse: NSMutableArray(NSJSONSerialization.JSONObjectWithData(response, options:0, error:&jsonParsingError))
有人请帮助我,为什么我有这个错误,今天是我在SWIFT的第一个实际日子,我一直在做Objective-c直到现在
答案 0 :(得分:1)
尝试以下代码段
var error : NSError?
var responseCode : NSURLResponse? = nil;
var url = NSURL(string: "https://portal.pfs-ltd.org/SyncCharityData")
var request = NSURLRequest(URL: url!)
var response = NSURLConnection.sendSynchronousRequest(request, returningResponse: &responseCode, error: &error) as NSData?
println("response \(response)")
if let responseData = response {
var jsonResponse = NSJSONSerialization.JSONObjectWithData(responseData, options: nil, error: &error) as [AnyObject]!
println("*** \(jsonResponse)")
}
答案 1 :(得分:1)
您的代码中存在一些错误,主要是关于初始化和可选项 - 这是一个可编译的版本:
if let url = NSURL(string: "https://portal.pfs-ltd.org/SyncCharityData") {
let request = NSURLRequest(URL: url)
if let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil) {
var response = NSData(data: data)
var jsonParsingError: NSError?
if let res = NSJSONSerialization.JSONObjectWithData(response, options: nil, error:&jsonParsingError) as? NSArray {
var jsonResponse = NSMutableArray(array: res)
}
}
}
name: Type
语法用于声明变量类型,但不会初始化它。您应该像在目标C中一样使用赋值运算符=
- 但是由于swift具有类型推断,如果可以通过使用它初始化它的值来推断,则不需要指定变量类型
NSURL
,NSURLRequest
和NSMutableArray
在其各自的初始化程序中需要非可选数据,因此我使用了可选绑定来为它们提供非可选数据。
此外,在上述情况下,您错过了指定外部参数名称(分别为URL
,data
和array
,例如NSMutableArray(array: res)
。
个人建议:我建议您阅读Language Guide。我认为用一种语言开发而不理解一些基本概念是没有用的 - 虽然swift语法类似于其他开发语言,但它有一些不寻常的功能,如选项,类型推断等,你需要完全理解为了编写首先编译然后执行你期望的代码。