小编Bat*_*azy的帖子

Math.Sqrt()的时间复杂度?

我怎样才能找到这个功能的复杂性?

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()是什么.

c# big-o time-complexity math.sqrt

7
推荐指数
2
解决办法
1227
查看次数

带有太长阿拉伯文本的 CoreText

我试图按照关于 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 时的文本渲染,它显得脱节和颠倒

在此处输入图片说明

core-text ios swift arabic-support

5
推荐指数
1
解决办法
147
查看次数

SwiftUI:相当于 lineBreakStrategy

SwiftUI 中是否有与lineBreakStrategy我们设置相同的东西UILabel

uilabel ios swiftui

5
推荐指数
0
解决办法
987
查看次数

@State 的限制

我在一些文章中看到@state有很多限制

  • 我们不应该将它与复杂的模型一起使用,最好将它与简单的属性(如 string、bool 等)一起使用。
  • 我们应该在视图本身内部使用它。

我尝试制作一个结构模型并在 contentview (ParentView)中用 @state 标记它,并通过用 @binding 包装它来将该模型传递给它的子视图,它工作得很好,所以我不明白为什么我们仍然需要 @objectbinding因为我们可以将相同的值传递给这些子视图,如果一个视图发生变化,其他视图也会发生变化?或者@objectbound解决的@state有哪些限制?

swift5 swiftui

2
推荐指数
1
解决办法
1067
查看次数