Questions tagged «swift»

Swift是Apple Inc.针对其平台和Linux开发的一种安全,快速且具有表现力的通用编程语言。Swift是开源的。仅将标记用于有关语言功能或在Swift中需要代码的问题。将标签[ios],[ipados],[macos],[watch-os],[tvos],[cocoa-touch]和[cocoa]用于有关平台或框架的(语言不可知)问题。

20
UITextField文本更改事件
如何检测textField中的任何文本更改?委托方法shouldChangeCharactersInRange适用于某些东西,但不能完全满足我的需要。因为直到返回YES,否则textField文本不可用于其他观察者方法。 例如,在我的代码calculateAndUpdateTextFields中没有得到更新的文本,用户已经输入了。 他们获得textChangedJava事件处理程序之类的方法是什么。 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField.tag == kTextFieldTagSubtotal || textField.tag == kTextFieldTagSubtotalDecimal || textField.tag == kTextFieldTagShipping || textField.tag == kTextFieldTagShippingDecimal) { [self calculateAndUpdateTextFields]; } return YES; }

6
如何在“纯” Swift中创建弱协议引用(不带@objc)
weak除非a protocol声明为@objc,否则引用似乎在Swift中不起作用,我不希望在纯Swift应用程序中使用它。 这段代码给出了一个编译错误(weak不能应用于非类类型MyClassDelegate): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } 我需要给协议加上前缀@objc,然后它才能工作。 问题:什么是完成Swift的“纯” Swift方法weak delegate?


22
在Swift中将Int转换为String
我正在尝试找出如何在Swift中将Int转换为String。 我想出一种解决方法,NSNumber但我很想弄清楚如何在Swift中做到这一点。 let x : Int = 45 let xNSNumber = x as NSNumber let xString : String = xNSNumber.stringValue
553 string  casting  int  converter  swift 

6
为什么在Swift字符串中像👩‍👩‍👩‍👦这样的表情符号字符被如此奇怪地对待?
字符👩‍👩‍👧‍👦(有两个女人,一个女孩和一个男孩的家庭)的编码如下: U+1F469 WOMAN, ‍U+200D ZWJ, U+1F469 WOMAN, U+200D ZWJ, U+1F467 GIRL, U+200D ZWJ, U+1F466 BOY 因此,它的编码非常有趣;单元测试的理想目标。但是,Swift似乎不知道如何处理它。这就是我的意思: "👩‍👩‍👧‍👦".contains("👩‍👩‍👧‍👦") // true "👩‍👩‍👧‍👦".contains("👩") // false "👩‍👩‍👧‍👦".contains("\u{200D}") // false "👩‍👩‍👧‍👦".contains("👧") // false "👩‍👩‍👧‍👦".contains("👦") // true 因此,斯威夫特说,它包含了自己(好)和一个男孩(好!)。但随后它说它不包含女人,女孩或零宽度细木工。这里发生了什么事?为什么Swift知道其中包含一个男孩,却没有一个女人或女孩?我能理解它是否被视为单个字符,并且仅识别出它包含自身,但事实是它只有一个子组件而没有其他组件令我感到困惑。 如果使用,则不会改变"👩".characters.first!。 更令人困惑的是: let manual = "\u{1F469}\u{200D}\u{1F469}\u{200D}\u{1F467}\u{200D}\u{1F466}" Array(manual.characters) // ["👩‍", "👩‍", "👧‍", "👦"] 即使我将ZWJ放置在其中,它们也没有反映在字符数组中。随之而来的是一点点的告诉: manual.contains("👩") // false manual.contains("👧") // …
538 swift  string  unicode  emoji 


30
如何枚举String类型的枚举?
enum Suit: String { case spades = "♠" case hearts = "♥" case diamonds = "♦" case clubs = "♣" } 例如,我该怎么做: for suit in Suit { // do something with suit print(suit.rawValue) } 结果示例: ♠ ♥ ♦ ♣
530 swift  string  enums  enumerate 

18
Swift如何按属性值对自定义对象数组进行排序
可以说我们有一个名为imageFile的自定义类,该类包含两个属性。 class imageFile { var fileName = String() var fileID = Int() } 其中很多存储在数组中 var images : Array = [] var aImage = imageFile() aImage.fileName = "image1.png" aImage.fileID = 101 images.append(aImage) aImage = imageFile() aImage.fileName = "image1.png" aImage.fileID = 202 images.append(aImage) 问题是:如何按“ fileID” ASC或DESC对图像数组进行排序?
519 arrays  sorting  swift 

22
在Swift语言中,感叹号是什么意思?
Swift编程语言指南包含以下示例: class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { println("\(name) is being deinitialized") } } class Apartment { let number: Int init(number: Int) { self.number = number } var tenant: Person? deinit { println("Apartment #\(number) is being deinitialized") } } …

30
UIScrollView可滚动内容大小歧义
资深开发人员,我在Interface Builder(Xcode 5 / iOS 7)中无法使用AutoLayout。这是非常基本和重要的,因此我认为每个人都应该知道它是如何正常工作的。如果这是Xcode中的错误,那就是关键! 因此,每当我拥有这样的视图层次结构时,我都会遇到麻烦: >UIViewController >> UIView >>>UIScrollView >>>>UILabel (or any other comparable UIKit Element) UIScrollView具有固定的约束,例如,每侧50 px(没有问题)。然后,我向UILabel添加一个Top Space约束(没问题)(并且我甚至可以固定标签的高度/宽度,什么都没有改变,但是由于Label的固有尺寸而不必要) 当我向UILabel添加尾随约束时,麻烦就开始了: 例如,尾随空格到:Superview等于:25 现在出现两个警告-我不明白为什么: A)可滚动的内容大小含糊(滚动视图具有模糊的可滚动内容高度/宽度) B)位置错误的视图(标签期望:x = -67实际:x = 207 我在一个全新的项目中做了这个最小的示例,您可以下载该项目,并附上了屏幕截图。如您所见,Interface Builder期望Label位于UIScrollView的边界(橙色虚线矩形)之外。使用“解决问题”工具更新标签的框架将其移到那里。 请注意:如果将UIScrollView替换为UIView,则行为符合预期(Label的框架正确且根据约束)。因此,UIScrollView似乎有问题,或者我错过了一些重要的东西。 当我运行应用程序而未按照IB的建议更新Label的框架时,它的位置恰到好处,恰好位于其应有的位置,并且UIScrollView可滚动。如果我更新框架,则标签将不可见,并且UIScrollView不会滚动。 帮我Obi-Wan Kenobi!为什么布局不明确?为什么视图放错了位置? 您可以在此处下载示例项目,然后尝试确定是否发生了什么情况:https : //github.com/Wirsing84/AutoLayoutProblem

10
为什么要创建“隐式展开的可选项”,因为这意味着您知道存在价值?
为什么只创建一个正则变量或常量而不是创建一个“隐式展开的可选”?如果您知道可以成功解包,那么为什么首先要创建一个可选的?例如,为什么这样: let someString: String! = "this is the string" 比以下内容更有用: let someString: String = "this is the string" 如果“可选参数指示允许常量或变量具有'无值'”,但“有时从程序的结构中可以看出,可选参数在首次设置该值后将始终具有一个值”,这是什么意思呢?首先使它成为可选项?如果您知道可选值总是会有一个值,那不是使它不是可选值吗?

12
不建议在Swift 4模式下使用Swift 3 @objc推论吗?
简要地说,在使用Xcode 9 Beta时,我遇到了以下警告: 不建议在Swift 4模式下使用Swift 3 @objc推断。请解决已弃用的@objc推断警告,启用“使用已弃用的Swift 3 @objc推断”日志记录来测试您的代码,并禁用Swift 3 @objc推断。** 经过研究后,我仍然不知道如何解决该问题。我将不胜感激有关如何解决此问题的所有技巧以及对所发生情况的解释。 我的目标是更好地理解我的代码正在发生的事情。

30
如何在Swift中创建UIAlertView?
我一直在努力在Swift中创建UIAlertView,但是由于某种原因,由于出现此错误,我无法正确执行该语句: 找不到接受提供的参数的'init'的重载 这是我的写法: let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message", delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil) 然后调用它,我正在使用: button2Alert.show() 截至目前,它崩溃了,我似乎无法正确理解语法。


16
如何检查元素是否在数组中
在Swift中,如何检查数组中是否存在元素?Xcode没有针对contain,,include或的任何建议has,并且快速搜索本书不会发现任何建议。知道如何检查吗?我知道有一种方法find可以返回索引号,但是有没有一种方法可以返回布尔值,如ruby的#include?? 我需要的示例: var elements = [1,2,3,4,5] if elements.contains(5) { //do something }
475 arrays  swift 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.