我想始终把观点放在前面.在夫特CGFLOAT_MAX和FLT_MAX与对应被替换.greatestFiniteMagnitude.所以,我用过:
view.layer.zPosition = .greatestFiniteMagnitude
Run Code Online (Sandbox Code Playgroud)
它工作正常,但现在我收到警告:
CoreAnimation: zPosition should be within (-FLT_MAX, FLT_MAX) range.
Run Code Online (Sandbox Code Playgroud)
有没有办法摆脱警告(这里可能有更好的价值)?
谢谢.
我正在尝试使用自定义 UI 发送本地通知,该通知向用户显示的内容多于通知本身包含的内容。我想从应用程序的核心数据中获取内容。是否可以?当我调试通知内容扩展时,它会在检索核心数据模型路径的以下行崩溃:
let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd")!
此外,当我print(NSBundle.allBundles())从通知扩展代码中时,它只打印与扩展相关的一个 (.../PlugIns/Notification Content.appex> (loaded))
那么有没有办法访问通知内容扩展中的核心数据呢?我也想尝试使用通知服务扩展,但看起来它只能用于推送通知(不是本地)。
UIView标头声明superview属性很强
open var superview: UIView? { get }
Run Code Online (Sandbox Code Playgroud)
但它的行为就像一个弱属性,即如果我创建view1和view2然后调用view1.addSubview(view2),然后只将一个强引用保存到view2(而不是view1),即使view2引用了view1,它也会被删除通过其superview属性.
所以,我想知道它是如何在现实中实现的.
编辑:例如,此代码打印"deinit"(ViewController实例显示在屏幕上),这意味着它view1已被删除,即使view2应该通过superview属性强烈保持它.
class View: UIView {
deinit {
print("deinit")
}
}
class ViewController: UIViewController {
var view2 = UIView()
override func viewDidLoad() {
super.viewDidLoad()
let view1 = View()
view1.addSubview(view2)
}
}
Run Code Online (Sandbox Code Playgroud)