Tag: swift3

缓慢的Swiftstring性能

我正试图解决回文分区问题。 你可以在https://leetcode.com/problems/palindrome-partitioning/find这个问题。 我想出了解决scheme: func partition(_ s: String) -> [[String]] { var result: [[String]] = [] func dfs(string: String, partiton: [String]) { if string.characters.count == 0 { result.append(partiton) return } for length in 1…string.characters.count { let endIndex = string.index(string.startIndex, offsetBy: length-1) let part = string[string.startIndex…endIndex] if isPalindrome(part) { let leftPart = string[string.index(after: endIndex)..<string.endIndex] print("string: \(string) part: […]

将parameter passing给Swift3中的select器

我以编程方式将UITapGestureRecognizer添加到我的某个视图中: let gesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(modelObj:myModelObj))) self.imageView.addGestureRecognizer(gesture) func handleTap(modelObj: Model) { // Doing stuff with model object here } 我遇到的第一个问题是“#selector”的参数不是指“@Objc”方法,属性或初始值设定项。 很酷,所以我添加了@objc到handleTap签名: @objc func handleTap(modelObj: Model) { // Doing stuff with model object here } 现在我得到错误“方法不能被标记@objc,因为参数的types不能在Objective-C中表示。 这只是一个build筑物地图的图像,其中一些图钉指示了兴趣点的位置。 当用户点击其中一个引脚时,我想知道他们感兴趣的是哪个点,然后我有一个模型对象来描述这些兴趣点。 我使用这个模型对象在地图上给出了图像的坐标,所以我认为将对象发送到手势处理程序本来就很容易。

Xcode 9 Swift语言版本(SWIFT_VERSION)

我最近更新了xcode到版本9.之前,在Xcode 8.x中,每当我使用pod update它会显示一个更新代码,将代码转换为Swift 3,并解决错误。 但现在它给了我这个错误: 必须将“Swift语言版本”(SWIFT_VERSION)版本设置设置为支持使用Swift的目标值。 该设置可以在构build设置编辑器中设置。 对于这个错误,我试过Build Settings > Swift Language Version ,它是Swift 3.2但是,作为更新调用已重新安装一些像Alamofire豆荚,它说要安装Xcode 8.x将代码转换为Swift 3我是否需要安装最新版本的Xcode? 如果是的话,那么我怎样才能用Xcode 9安装Xcode 8?

Xcode 8中的自动调整问题

=== 编辑 ======== 这个问题现在已经在Xcode 8.1中解决了。 我检查过。 ================ 我不知道自动布局正确。 所以,我在所有的应用程序中使用自动调整选项,这对我来说很好。 我没有任何问题能够满足我的所有要求。 现在在Xcode 8中,我已经将我的旧swift项目迁移到swift 3.现在问题出现了。 在图像中看到,我已经设置了Autoresizing,并且在所有设备中工作正常,直到现在,这个项目都在AppStore中,所以我不能显示UI或故事板。 现在我不得不在项目中做一些更新。 所以我现在在Xcode 8上工作。 但是,我的自动调整不能正常工作,因为所有的控件都集中在一起,用户界面混乱了。 而且这个问题还存在于设备中。 我也检查过模拟器和设备。 但问题也在那里。 任何build议和帮助将不胜感激。 提前致谢。 编辑: 昨天在运行时只有问题,但是今天的故事板也改变了这个图像的意见 这意味着整个UIdevise是搞砸了。 这很奇怪

Swift 3 ObjC可选协议方法不在子类中调用

我有以下类层次结构: class ScrollableViewController: UIViewController, UITableViewDelegate { // … } 这实现了一个UITableViewDelegate协议方法,例如tableView:willDisplayCellAt: 在我的类SpecificScrollableViewController ,inheritance自ScrollableViewController ,新的可选协议方法不会再被调用,例如tableView(_:heightForRowAt:)

在swift3中的XMLParser.sharedParser.decode()

我在swift2中使用了这个代码XMLParser.sharedParser.decode() 。 但我迁移swift3这个代码没有工作。 我的代码在这里, func xmppStream(_ sender: XMPPStream!, didReceive message: XMPPMessage!) { let result1 = XMLParser.sharedParser.decode(String(message)) for (key, value) in result1 { let title = result1["title"] } if message.isChatMessage(){ sms = String(message.body()) if( sms == "" || message.body() == nil){ }else{ self.prefs.set(sms, forKey: "SMS") } } }

Alamofire火灾variablestypes没有下标成员

更新到Alamofire 4并更新我的代码到Swift 3后,我的所有请求都不能正常工作。 我试图利用的variables以红色突出显示,并且说“types任何”没有下标成员“ 这是我的代码: Alamofire.request("https://example.com/notifications.php?action=\(action)&UUID=\(UniversalUUID)&token=\(token)").responseJSON{ (response) -> Void in if let JSON = response.result.value{ let message = JSON["message"] as! String print(message) }

递增标签栏徽章W / UIAlertAction迅速?

@IBAction func addToCart(sender: AnyObject) { let itemObjectTitle = itemObject.valueForKey("itemDescription") as! String let alertController = UIAlertController(title: "Add \(itemObjectTitle) to cart?", message: "", preferredStyle: .Alert) let yesAction = UIAlertAction(title: "Yes", style: UIAlertActionStyle.Default) { (action) in var tabArray = self.tabBarController?.tabBar.items as NSArray! var tabItem = tabArray.objectAtIndex(1) as! UITabBarItem let badgeValue = "1" if let x = badgeValue.toInt() { […]

Swift 3.0错误:转义闭包只能通过值显式捕获inout参数

我试图更新我的项目Swift 3.0,但我有一些困难。 我得到下一个错误:“转义闭包只能通过值显式捕获inout参数”。 问题出在这个函数里面: fileprivate func collectAllAvailable(_ storage: inout [T], nextUrl: String, completion: @escaping CollectAllAvailableCompletion) { if let client = self.client { let _ : T? = client.collectionItems(nextUrl) { (resultCollection, error) -> Void in guard error == nil else { completion(nil, error) return } guard let resultCollection = resultCollection, let results = resultCollection.results else { […]

CocoaPods和Swift 3.0

我只想在我的一个项目中尝试Swift 3.0。 Xcode打开迁移窗口来更新我的项目使用Swift 3.0。 问题是,我只想更新我的项目,并保持Pods项目不变,因为在我再次运行pod install后,任何更改都将被丢弃。 任何人都已经有一个解决scheme呢?