我怎样才能找到这个功能的复杂性?
private double EuclideanDistance(MFCC.MFCCFrame vec1, MFCC.MFCCFrame vec2)
{
double Distance = 0.0;
for (int K = 0; K < 13; K++)
Distance += (vec1.Features[K] - vec2.Features[K]) * (vec1.Features[K] - vec2.Features[K]);
return Math.Sqrt(Distance);
}
Run Code Online (Sandbox Code Playgroud)
我知道下面的部分是O(1):
double Distance = 0.0;
for (int K = 0; K < 13; K++)
Distance += (vec1.Features[K]-vec2.Features[K])*(vec1.Features[K]-vec2.Features[K]);
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚复杂性Math.Sqrt()是什么.
我试图按照关于 CoreText 的教程以及如何绘制文本,并在我的 customView 中实现了这个功能。
override func draw(_ rect: CGRect) {
guard let context = UIGraphicsGetCurrentContext() else { return }
let path = CGMutablePath()
path.addRect(bounds)
let attrString = NSAttributedString(string: "Hello World")
let framesetter = CTFramesetterCreateWithAttributedString(attrString as CFAttributedString)
let frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, attrString.length), path, nil)
CTFrameDraw(frame, context)
}
Run Code Online (Sandbox Code Playgroud)
当文本很短时它工作正常,但当文本超过 10k 个字母时,它会以错误的方式呈现。有什么解决办法吗?
注意:当文本为阿拉伯语而不是英语时会发生这种情况。
这是当文本数量超过 10kb 时的文本渲染,它显得脱节和颠倒:
SwiftUI 中是否有与lineBreakStrategy我们设置相同的东西UILabel?
我在一些文章中看到@state有很多限制
我尝试制作一个结构模型并在 contentview (ParentView)中用 @state 标记它,并通过用 @binding 包装它来将该模型传递给它的子视图,它工作得很好,所以我不明白为什么我们仍然需要 @objectbinding因为我们可以将相同的值传递给这些子视图,如果一个视图发生变化,其他视图也会发生变化?或者@objectbound解决的@state有哪些限制?