UITextView字体属性在iOS 9中是可选的,但它是否为零?
显然iOS 9将UITextView
font
属性更改为Swift可选类型,我想知道它是否安全!
在没有明确地设置或检查它nil
情况下取消引用它( 至少现在至少是这样。我意识到将来做出这样的假设可能不是一个好主意 )。
默认情况下,新UITextView
对象上的字体字段是否实际为零(暗示UITextView
在某些系统提供的大小时使用默认系统字体)? 或者iOS 9 UITextView
上的font属性是否会初始化为具有适合用户iOS设置的字体集和大小的UIFont()
对象?
注意:我要问的原因是,基于SO用户尝试更新答案(被SO社区拒绝的编辑),我想正确更新该答案以适应iOS 9 / Swift 2.0,但可以’目前正在调查或测试此问题。 我希望有人已经知道UITextView关于字体的更改/行为。
自我解释:
import UIKit let textView = UITextView() let font = textView.font // let fontUnwrapped = textView.font! // crashes textView.text = "hello" let fontUnwrapped = textView.font! // font-family: "Helvetica"; ...
是的, font
属性可以是nil
。 我刚刚在Xcode 7.0.1(Swift 2.0)的Playground中尝试过这个:
let view = UITextView(frame: CGRectMake(0,0,100,100)) print(view.font) // "nil\n" if (view.font == nil) { print("it is nil") // "it is nil\n" }
但是,令人惊讶的是,当您强行拆开它时它不会崩溃! ( 编辑 :继续阅读,实际情况并非如此)。
let font = view.font! print(font.description)
输出:
font-family:“Helvetica”; font-weight:normal; font-style:normal; font-size:12.00pt
在iOS 9模拟器中观察到相同的行为。
更新
从@ MartinR在评论中的观察,我在view.text
之前分配给view.text
,这导致它被赋予默认字体值。
因此,原始问题的答案是肯定的,它可以是nil
,不应该在未经测试的情况下展开 。
- iphone – didSelectRowAtIndexPath:只在长按自定义单元格后被调用
- SearchDisplayController SearchBar重叠导航栏并调整自身的大小IOS7
- UIImage种植中心广场
- 检查NSDocumentDirectory中的现有图像
- 当我创build一个新项目时,Xcode 4的Project Navigator中的“M”和“A”图标是什么意思?
- 如何在ARC中释放内存以获得高内存使用率的图形渲染?
- 如何清除ipad中的webviewcaching
- ios 7模拟器不会回退针对ios 6.1 sdk编译的应用程序的用户界面
- 在swift中调试时Xcode 9崩溃