我有以下简单的代码写在Swift 3中: let str = "Hello, playground" let index = str.index(of: ",")! let newStr = str.substring(to: index) 从Xcode 9 beta 5中,我得到以下警告: ' substring(to:) '已被弃用:请使用String切片下标与“部分范围”运算符。 如何在Swift 4中使用部分范围的切片下标 ?
我在看Xcode 7.3笔记,我注意到这个问题。 ++和 – 运算符已被弃用 有人可以解释为什么它被弃用吗? 我是正确的,在新版本的Xcode现在你要使用,而不是++这个x += 1 ; 例: for var index = 0; index < 3; index += 1 { print("index is \(index)") }
我已经将我的项目迁移到Swift 3(并且在Podfile中将Alamofire更新为最新的Swift 3版本,带有pod 'Alamofire', '~> 4.0' )。 每一个Alamofire.request我现在都会得到一个“额外的参数调用”错误。 例如: let patientIdUrl = baseUrl + nextPatientIdUrl Alamofire.request(.POST, patientIdUrl, parameters: nil, headers: nil, encoding: .JSON) 有人可以告诉我为什么?
在Swift 2中,以下代码正在工作: let request = NSFetchRequest(entityName: String) 但在Swift 3中却出现错误: 通用参数“ResultType”无法推断 因为NSFetchRequest现在是一个genericstypes。 他们在文件中写到: let request: NSFetchRequest<Animal> = Animal.fetchRequest 所以如果我的结果类是例如Level我应该如何正确地要求? 因为这不起作用: let request: NSFetchRequest<Level> = Level.fetchRequest
我已经看到人们用objective-c来做这个,但是我很快就遇到了麻烦。 我已经从图片中获得了一个像素的颜色,但是现在我需要取个别的红色,绿色和蓝色值。 这是我有(h,w和rgb是整数和image.getPixelColor(CGPoint)返回一个UIColor): xArry[h][w][rgb] = image.getPixelColor(CGPoint(x: w, y: h)) 如何将此UIColor更改为红色,绿色和蓝色值? 谢谢!
好吧,我只是更新Xcode到7.3,现在我得到这个警告: 'var'参数已被弃用,并将在Swift 3中被删除 当我需要在这个函数中使用var时如何解决这个问题: public func getQuestionList(var language: String) -> NSArray { if self.data.count > 0 { if (language.isEmpty) { language = "NL" } return self.data.objectForKey("questionList" + language) as! NSArray } return NSArray() }
我正在用Swift 3语法定义一个自定义错误types,我想提供Error对象的localizedDescription属性返回的错误的用户友好描述。 我该怎么做? public enum MyError: Error { case customError var localizedDescription: String { switch self { case .customError: return NSLocalizedString("A user-friendly description of the error.", comment: "My error") } } } let error: Error = MyError.customError error.localizedDescription // "The operation couldn't be completed. (MyError error 0.)" 是否有一种方法让localizedDescription返回我自定义的错误描述(“一个用户友好的错误描述”)? 请注意,这里的错误对象的types是Error而不是MyError 。 当然,我可以将对象投射到MyError (error as? MyError)?.localizedDescription 但有没有办法使它的工作,而不是铸造我的错误types?
在Xcode8 beta6中,下面的代码会导致警告:'是'testing总是如此。 但它不会打印通过。 struct TestStruct { } //warning: 'is' test is always true if TestStruct() is AnyObject { print("pass") } 下面的代码会引起警告:从'T'到'AnyObject'的条件转换总是成功的 public static func register<T>(_ protocolType: T.Type, observer: T) { //Warning: Conditional cast from 'T' to 'AnyObject' always succeeds guard let object = observer as? AnyObject else { fatalError("expecting reference type but found value type: […]
如果是这样的话,在Objective-C中使用键值观察时,是否存在其他不存在的关键差异?
我在Playground中使用Swift 3,Xcode 8.0: import Foundation class Person: NSObject, NSCoding { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } required convenience init(coder aDecoder: NSCoder) { let name = aDecoder.decodeObject(forKey: "name") as! String let age = aDecoder.decodeObject(forKey: "age") as! Int self.init( name: name, age: age ) } […]