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]