Sketch 84 新功能
Sketch 84 仍处于测试阶段。我们提供这些说明作为对即将对插件开发者进行的更改的预览。
更改
我们从代码库中删除了内部类 MSLayerArray
。处理图层数组的代码现在改用普通的 NSArray
对象。此更改通过删除不必要的抽象层,使我们的内部代码更简洁、更容易维护。
如我们的 内部 API 页面 中所述,这是一个内部类,永远不应该使用。但我们意识到某些插件使用它,因此我们提供此信息以帮助他们迁移代码以使用新的 API。
预期 MSLayerArray
对象且使用其 .layers()
方法获取包含图层的 NSArray
的代码现在将收到一个 NSArray
对象。不再需要 .layers()
调用。
依赖于 MSLayerArray
中任何内部方法的插件将无法正常工作。如果它们将返回值未经检查地传递给插件代码的其他部分,甚至可能导致 Sketch 崩溃。
查看下一节中的表格,了解如何迁移代码的示例。
我们建议在可能的情况下使用 JavaScript API。
一些示例
注意:在更改插件时,您可能希望添加版本检查,以确保代码继续与旧版本的 Sketch 配合使用。您可以检查
BCSketchInfo.shared().metadata().appVersion
的值以查看当前版本。
如果您的插件使用类似于此的代码… | …请改用此代码 |
this._object.selectedLayers().layers() |
this._object.selectedLayers() |
var layerArray = MSLayerArray.arrayWithLayer(layer) |
var layerArray = [layer] |
var layerArray = MSLayerArray.arrayWithLayers([layers]) |
var layerArray = [layers] |
var layerArray = MSLayerArray.emptyArray() |
var layerArray = [] |
var layerArray = MSLayerArray.initWithLayers([layers]) |
var layerArray = [layers] |