无法将'NSArray'类型的值转换为预期的参数类型'[Any]!'

时间:2017-02-23 12:01:40

标签: swift objective-c-swift-bridge

我在Swift 3.0代码中添加了Objective-C类别。它有一个带标题的方法:

+(UIBezierPath *)interpolateCGPointsWithHermite:(NSArray *)pointsAsNSValues closed:(BOOL)closed;

当我从Swift代码中调用它时:

antiAliasing = dict.value(forKey: "antAliasing") as! NSArray
UIBezierPath.interpolateCGPoints(withHermite: antiAliasing, closed: true)

我收到了错误:

  

无法将“NSArray”类型的值转换为预期的参数类型   '[任何]!

有什么问题?

1 个答案:

答案 0 :(得分:3)

  1. 将NSArray替换为[NSValue],如@vadian建议
  2. 使用可选转化Button,因为它更可靠,如果转换失败,您不会遇到崩溃。
  3. 使用下标代替as?方法。
  4. 以下是代码:

    valueForKey