【问题标题】:Sketch Plugin - NSFileManager contentsOfDirectoryAtPath - not a functionSketch 插件 - NSFileManager contentsOfDirectoryAtPath - 不是一个函数
【发布时间】:2017-01-03 15:53:56
【问题描述】:

我正在尝试为 Sketch 制作一个插件,让我能够自动生成多语言资产。

现在,我选择启动该过程的语言文件列表。我使用 NSOpen 面板来选择这些。对于每个语言文件,它会为该语言创建一个新页面,并找到带有特殊标签的文本层,并用翻译后的副本替换副本。

在执行此操作时,我希望它检查另一个文件夹 screenshots/lang 中是否有任何屏幕截图,并存储这些图像的文件路径列表。这就是我现在卡住的地方。

目前我有:

var screenShotPaths = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:mySourcePath error:NULL];

当我尝试以当前状态在草图中运行我的插件时,控制台说:

(Sketch Plugin)[6547]: TypeError: fileManager.contentsOfDirectoryAtPath_ is not a function. 
(In 'fileManager.contentsOfDirectoryAtPath_( mySourcePath)', 'fileManager.contentsOfDirectoryAtPath_' is undefined)

我已经尝试过查看所有问题,我发现列表没有返回、返回 null 等的许多问题,但是我找不到任何 contentOfDirectoryAtPath 不是函数返回的问题。

这是因为它是一个由应用程序运行的插件并且在文件系统中导航是一个安全问题吗?

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: sketch-3 sketchapp cocoa-scripting cocoascript


    【解决方案1】:

    这里的游戏有点晚了,但希望搜索此内容的人会发现这很有用。

    我发现你必须使用完整的方法:contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error(url,nil,nil,nil);

    我对 JS 比较熟悉,所以我使用的是 js 语法。希望其他人可以将其翻译成 Cocoa。

    【讨论】:

      【解决方案2】:

      为我工作:(草图 55)

      var fileManager = [NSFileManager defaultManager];
      var paths = [fileManager contentsOfDirectoryAtPath:filePath error:null];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-06
        • 1970-01-01
        • 1970-01-01
        • 2011-10-21
        • 2021-03-23
        • 1970-01-01
        • 2022-07-21
        • 1970-01-01
        相关资源
        最近更新 更多