连续声明需要;快速错误

时间:2014-12-31 09:37:50

标签: swift ios8

我在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直到现在

2 个答案:

答案 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具有类型推断,如果可以通过使用它初始化它的值来推断,则不需要指定变量类型

NSURLNSURLRequestNSMutableArray在其各自的初始化程序中需要非可选数据,因此我使用了可选绑定来为它们提供非可选数据。

此外,在上述情况下,您错过了指定外部参数名称(分别为URLdataarray,例如NSMutableArray(array: res)

个人建议:我建议您阅读Language Guide。我认为用一种语言开发而不理解一些基本概念是没有用的 - 虽然swift语法类似于其他开发语言,但它有一些不寻常的功能,如选项,类型推断等,你需要完全理解为了编写首先编译然后执行你期望的代码。