Tag: swift2

重写Swift 2中的函数错误

XCode 6中的这个代码没有错误,但在XCode 7(Swift 2)中发生了这个错误: 方法不会覆盖任何超类的方法 override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { /* Called when a touch begins */ } 当删除重override发生此错误: 方法'touchesBegan( :withEvent :)'用Objective-Cselect器'touchesBegan:withEvent:'与具有相同Objective-Cselect器的超类'UIResponder' 的touchesBegan( :withEvent 🙂 方法冲突

从常规方法调用协议默认实现

我想知道是否有可能实现这样的事情。 我有这样一个游乐场: protocol Foo { func testPrint() } extension Foo { func testPrint() { print("Protocol extension call") } } struct Bar: Foo { func testPrint() { // Calling self or super go call default implementation self.testPrint() print("Call from struct") } } let sth = Bar() sth.testPrint() 我可以提供extension的默认实现,但是如果Bar需要默认实现中的所有内容以及其他内容呢? 这跟调用super.很像super. 在class上实施各种财产的要求等,但我认为没有可能达到与structs相同。

通过String Swift 2.0迭代

我想在Swift游乐场里做一个非常简单的代码。 var word = "Zebra" for i in word { print(i) } 但是,我总是在第3行发生错误。 'String'没有名为'Generator'的成员 任何想法,为什么这是行不通的? 注意:我在Xcode 7中使用Swift 2.0( string和字符)。

FBSOpenApplicationErrorDomain错误1

我试图运行我的iOS应用程序,它是从Xcode 7使用iPhone模拟器(任何)从Swift 1.2迁移到Swift 2.0 ,我得到以下错误: 操作无法完成。 (FBSOpenApplicationErrorDomain错误1.) 我已经尝试重置模拟器设置和内容,退出Xcode,干净的项目等。

如何迅速沉默警告

我有一段代码会产生很多警告(不推荐使用的API) 使用铿锵*我可以做的 #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" … #pragma clang diagnostic pop 然而,这并不能迅速起作用。 如何迅速做到这一点? 注:我不想全局禁用警告,甚至文件范围,但只是在我的源代码的特定部分禁用特定的警告。 编辑:我看起来像我的笔记不够清楚:我不想要条件编译(这是所谓的重复build议的答案)。 我只是想沉默一个警告,而不使用新的API。

在Swift 2中用自定义消息抛出错误/exception的最简单方法是什么?

我想在Swift 2中做一些我习惯于用其他语言来做的事情:用自定义消息抛出一个运行时exception。 例如(在Java中): throw new RuntimeException("A custom message here") 我明白,我可以抛出符合ErrorType协议的枚举types,但我不想为每个types的错误定义枚举。 理想情况下,我希望能够尽可能地模仿上面的例子。 我研究了创build一个实现ErrorType协议的自定义类,但我甚至不知道该协议需要什么(请参阅文档 )。 想法?

无法将types“NSTaggedPointerString”的值转换为“NSNumber”

我有这样的Swift结构。 struct Usage { var totalData: Double var remainingTotalData: Double init(jsonData: NSData) { var jsonDict = [String: AnyObject]() do { jsonDict = try NSJSONSerialization.JSONObjectWithData(jsonData, options: []) as! [String: AnyObject] } catch { print("Error occurred parsing data: \(error)") } totalData = jsonDict["totalfup"] as! Double remainingTotalData = jsonDict["totalrem"] as! Double } } 从一个API,我得到了以下的JSON响应。 这是jsonDictvariables的println。 [ "totalfup": 96.340899, […]

如何在Swift 2.0中使用stringByAddingPercentEncodingWithAllowedCharacters()作为URL

我正在使用这个,在Swift 1.2中 let urlwithPercentEscapes = myurlstring.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) 这现在给我一个警告,要我使用 stringByAddingPercentEncodingWithAllowedCharacters 我需要使用一个NSCharacterSet作为参数,但是有这么多,我不能确定什么人会给我以前使用的方法相同的结果。 我想使用的示例url将是这样的 http://www.mapquestapi.com/geocoding/v1/batch?key=YOUR_KEY_HERE&callback=renderBatch&location=Pottsville,PA&location=Red Lion&location=19036&location=1090 N Charlotte St, Lancaster, PA 编码的URL字符集似乎包含修剪我的URL。 即 URL的path组件是紧跟在主机组件之后的组件(如果存在)。 它在查询或片段组件开始的任何地方结束。 例如,在URL http://www.example.com/index.php?key1=value1中 ,path组件是/index.php。 不过,我不想削减它的任何方面。 当我使用我的string,例如myurlstring它会失败。 但是,当使用以下,那么没有问题。 它用一些魔术编码string,我可以得到我的URL数据。 let urlwithPercentEscapes = myurlstring.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) 就这样 使用给定的编码返回String的表示forms,以确定将String转换为合法URLstring所需的百分比转义 谢谢

如何在Swift中打印“catch all”exception的详细信息?

我正在更新我的代码使用Swift,我想知道如何打印错误的详细信息,匹配“catch all”子句的exception。 我稍微修改了这个Swift语言指南页面中的例子来说明我的观点: do { try vend(itemNamed: "Candy Bar") // Enjoy delicious snack } catch VendingMachineError.InvalidSelection { print("Invalid Selection.") } catch VendingMachineError.OutOfStock { print("Out of Stock.") } catch VendingMachineError.InsufficientFunds(let amountRequired) { print("Insufficient funds. Please insert an additional $\(amountRequired).") } catch { // HOW DO I PRINT OUT INFORMATION ABOUT THE ERROR HERE? } 如果我发现意外的exception,我需要能够logging什么导致它。

Swift 2 / iOS 9 – 找不到libz.dylib

我在我的新的Swift 2.0项目中使用了一些外部代码,在早期版本中需要“libz.dylib”。 更新到新的XCode /新的SDK。 XCode现在无法导入libz.dylib并引发一些错误 未定义的符号体系结构i386:“_deflate”,引用自:GAAGompressionUtil gai_dataByCompressingBytes:length:compressionLevel: (GAICompressionUtil.o)“ deflateInit2 ”,引用来自:+ GAICompressionUtil(“ GAICompressionUtil ”)中的引用来自于:“GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)”_inflate“ libGoogleAnalyticsServices.a(GAICompressionUtil.o)“inflateInit2”中的引用自:+ GAICompressionUtil gai_dataByInflatingBytes:length:isRawData: [GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)ld:symbol( s)找不到i386体系结构clang:错误:linker命令失败,退出代码1(使用-v查看调用) 当在“构build阶段”设置中查看可用包时,我可以find“libz.tbd”,这似乎是libz.dylib的替代品。 当导入这个库链接错误保持不变,但我得到这个额外的警告: 警告:跳过文件'/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/libz.tbd'(意外的文件types'文本'in框架和图书馆build设阶段) 任何想法该怎么办?