问题标签 [swift2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
594 浏览

swift - 应用启动时显示 UIAlertView

我正在尝试在应用首次加载时添加 UIAlertView 或 Controller。目前,我的viewDidLoad方法中有这段代码。

为什么不显示警报视图?我使用了相同的代码,但在IBAction按钮内部,它按预期工作。

0 投票
3 回答
13441 浏览

try-catch - 在 Swift 2 中,如何将 JSON 解析错误返回到完成块?

我想在 Swift 2 中创建一个从 URL 获取数据并使用 NSURLSession 将其作为 JSON 对象返回的函数。起初,这似乎很简单。我写了以下内容:

但是,这不会编译,因为完成块没有声明“抛出”。确切的错误是Cannot invoke 'dataTaskWithURL' with an argument list of type '(NSURL, (NSData?, NSURLResponse?, NSError?) throws -> Void)'。即使我在do/catch声明中发现了所有错误,Swift 仍然希望将 NSError 向上传播。我能看到的唯一方法是使用try!,如下所示:

现在一切都编译得很好,但是我丢失了NSJSONSerialization.JSONObjectWithData.

有没有我可以捕获可能抛出的 NSErrorNSJSONSerialization.JSONObjectWithData并将其传播到完成块而不修改完成块的签名?

0 投票
2 回答
6755 浏览

swift2 - 不能在 Swift 2 中使用方法“包含”

我正在使用 Swift 2。

我使用了这段代码:

我收到此错误:

“contains”不可用:在序列上调用 contains() 方法

0 投票
2 回答
688 浏览

ios - 尝试 - 抛出 IBAction - xCode 7

我对新的“throws”-“try”参数有疑问。

添加这些单词时出现错误,因此我在 IBAction 函数的末尾添加了“抛出”。

在里面我东东一些不相关的东西,然后这个:

之后没有错误,但是当我运行应用程序并单击按钮时,应用程序崩溃并显示代码

2015-06-15 10:43:11.374 BottLED[7283:1175818]-[BottLED.loginViewController loginButtonPressed:]:无法识别的选择器发送到实例 0x7fee28da7d20 2015-06-15 10:43:11.381 BottLED[7283:1175818] * 终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:'-[BottLED.loginViewController loginButtonPressed:]:无法识别的选择器发送到实例0x7fee28da7d20'*第一次抛出调用堆栈:(0 CoreFoundation 0x000000010d67c885 exceptionPreprocess + 165 1 libobjc.A.dylib 0x00000_exception_10thc0ed + 2 核心基础 0x000000010d684b5d -[NSObject(NSObject) 不识别选择器:] + 205 3 核心基础 0x000000010d5d1e3a ___forwarding_+ 970 4 CoreFoundation 0x000000010D19E8 _CF_FORWARDING_PREP_0 + 120 5 UIKIT 0x000000010DC46257- [UIAPPLICICATION sendaction:to to:to:to:From:Fromvent:Forevent:Forevent:] to:forEvent:] + 67 8 UIKit 0x000000010dda16c6 -[UIControl _sendActionsForEvents:withEvent:] + 272 9 UIKit 0x000000010dda08a9 -[UIControl touchesEnded:withEvent:] + 599 10 UIKit 0x000000010dcacbe8 -[UIForEvent:] + 835 11 UIKit 0x000000010dcad7d6 -[UIWindow sendEvent:] + 865 12 UIKit 0x000000010dc62705 -[UIApplication sendEvent:] + 263 13 UIKit 0x000000010dc3f5df _UIApplicationHandleEventQueue + 6031 14 CoreFoundation 0x000157001CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 15 CoreFoundation 0x000000010d59ceac __CFRunLoopDoSources0 + 556 16 CoreFoundation 0x000000010d59c363 __CFRunLoopRun + 867 17 CoreFoundation 0x000000010d59bd78 CFRunLoopRunSpecific + 488 18 GraphicsServices 0x0000000111fdebca GraphicsServices + 52170 19 UIKit 0x000000010dc4479b UIApplicationMain + 171 20 BottLED 0x000000010c7cb9ad main + 109 21 libdyld.dylib 0x000000011029ca05 libdyld.dylib + 10757 22 ???0x0000000000000001 0x0 + 1 ) libc++abi.dylib: 以 NSException (lldb) 类型的未捕获异常终止

当我做一些断点并删除“抛出”时,应用程序不会崩溃。我现在真的不知道该怎么办..我希望有人能帮助我!

完整的代码是:

0 投票
1 回答
1248 浏览

swift - startAccelerometerUpdatesToQueue 表达式类型不明确,没有更多上下文

我正在尝试将以下代码翻译成 Swift 2。

但这给了我以下错误。

在没有更多上下文的情况下,表达式的类型是模棱两可的

有谁知道为什么会这样?

0 投票
1 回答
7168 浏览

ios - Swift 2:NSData(contentsOfURL:url) 返回 nil

我有一个包含 JSON 文件的网页地址。我正在尝试在 Swift 2 中以 NSDictionary 的形式访问 JSON 文件。每次我调用 NSData(contentsOfURL:url!)where urlis type of 时NSURL?,它都会返回nil. 我正在使用 Xcode 7 Beta,该项目最初是在 Xcode 6 中制作的。

以下代码导致问题。

令我困惑的是,当我在终端中使用 键入相同的代码时尝试完全相同的事情时swift,该常量data未设置为 nil。我已经尝试重新启动 Mac,但它没有工作。我尝试重新安装 Xcode,但它没有工作。

这就是当我使用swift关键字向终端键入以下代码时发生的情况。

当我在终端中尝试时,它确实有效。谁能帮我解决问题??

0 投票
1 回答
261 浏览

swift2 - 在 Xcode 7 / iOS 9 中,我应该将新搜索 API 的代码放在哪里?

好的,所以我很好地理解了有关搜索 API 的视频,但是我到底应该把我的代码放在哪里呢?我真的很困惑,比如我应该把它放在哪里让它发挥作用?另外,当你从搜索中点击它时,你如何编写部分代码,它会打开到那个特定的视图控制器?

0 投票
2 回答
672 浏览

swift - NSObject 类使用 Swift 符合 NSArray 中包含的协议

我想在 Swift 中创建一个方法,该方法返回一个符合协议的 NSObject 对象数组。我试过这样的事情:

Manager如您所见,是一个协议。我收到返回语句中的强制转换总是会失败的错误。
我想告诉编译器我有一个 NSObject 类型的对象数组,并且所有元素都符合 Manager 协议。

0 投票
3 回答
11124 浏览

swift2 - Swift 2 NSURLSession.sharedSession().dataTaskWithURL 无法使用类型的参数列表调用

似乎无法使用 Xcode 7 编译以下代码,我收到错误“无法使用类型参数列表调用 'dataTaskWithURL'”

看起来completionHandler 不再是可选的,无法弄清楚如何重写以下代码。任何帮助表示赞赏,谢谢

0 投票
4 回答
79689 浏览

swift - 快速打印没有换行符

在 swift 2.0 中,print()自动添加换行符。在 swift 1.2 中,println()曾经print()是单独的函数。那么我如何打印一些文本而不添加换行符,因为 swift 不再具有不附加换行符的打印功能。