小编Leo*_*lis的帖子

使用C++实例变量归档/序列化Objective-C对象

我在Objective-C中使用OpenCV静态库来进行一些图像处理,虽然我的应用程序工作得很好,但在设备本身上却相当慢.事实上大部分处理都可以事先完成,所以我决定将序列化这些数据,然后在应用程序启动时加载它.

我需要序列化/存档的数据是CvSeq类型的对象(openCV序列 - 指向值序列的指针).我基本上想把它保存到文件中,以便以后加载它.我认为我可以通过创建一个遵循NSCoding协议并从那里编码/解码的类来做到这一点:

@implementation MyObject

@synthesize point = _point;
@synthesize description = _description;

- (id)initWithCoder:(NSCoder *)decoder {
    if (self = [super init]) {
        self.point = [decoder decodeObjectForKey:@"point"];
        self.description = [decoder decodeObjectForKey:@"description"];
    }
    return self;
}

- (void)encodeWithCoder:(NSCoder *)encoder {
    [encoder encodeObject:self.point forKey:@"point"];
    [encoder encodeObject:self.description forKey:@"description"];
}

@end
Run Code Online (Sandbox Code Playgroud)

但是在decodeObjectForKey:和encodeObject:调用上我得到了错误

error: cannot convert 'objc_object*' to 'CvSeq*' in argument passing
Run Code Online (Sandbox Code Playgroud)

我的代码是否有问题,或者我是否需要采用另一种方法才能在我的对象中使用非Objective-C实例变量来实现相同的功能?

c++ serialization opencv objective-c archiving

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

为什么 Ghostscript 不喜欢我的 PDF 的 ICC 配置文件?

我可以运行以下 GhostScript 成功地将多个 PDF 合并到一个文件中:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=test.pdf file1.pdf file2.pdf file3.pdf
Run Code Online (Sandbox Code Playgroud)

我还需要向 PDF 添加自定义叠加层,因此我执行以下操作:

convert -density 300 -quality 100 file1.pdf -font /usr/share/fonts/urw-base35/NimbusSansNarrow-Regular.otf -pointsize 15 -fill '#000000' -draw 'rectangle 21,1114,675,1220' -fill white -annotate +440+1160 '1 / 3' -annotate +34+1213 'file1.pdf' file1_a.pdf
Run Code Online (Sandbox Code Playgroud)

...对于每个 PDF,然后我再次运行第一个gs命令来合并这些带注释的 PDF,但是当我这样做时,我收到以下错误:

   **** Error: ICCbased space /N value does not match the ICC profile.
                 Using the number of channels from the profile.
                 Output may be incorrect.
Run Code Online (Sandbox Code Playgroud)

我确实找到了一些看起来相关的东西,表明 PDF 是错误的:https://bugs.ghostscript.com/show_bug.cgi ?id=697223

好吧,从根本上来说,您的 PDF 文件已损坏。它使用ICCBased色彩空间,并且色彩空间中声明的分量数量与ICC配置文件的实际内容不匹配。 …

imagemagick ghostscript

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

检查数组长度javascript

这是我第一次尝试使用Javascript和jQuery进行数据验证.

我的错误数组已经填满了,但我的问题是检查这个数组是否为空.在我的情况下,它总是如此.它会一直提醒我"错误leeg",即使数组为空,检查console.log(error):

<script type="text/javascript">
$(document).ready(function () 
{
    var error = [];
    $('#contactformulier').submit(function() {

      if($('input#namet').val().length == 0) {
          error['naam'] = 'Geen geldige naam ingevuld';
      } else{
          delete error['naam'];
      }

      if($('input#mailt').val().length == 0){
          error['mail'] = 'Geen geldig e-mailadres ingevuld';
      } else{
          delete error['mail'];
      }

      if($('textarea#message').val().length == 0){
          error['bericht'] = 'Geen geldig bericht ingevuld';
      } else{
          delete error['bericht'];
      }

      console.log(error);
      if (error.length < 1) {
        alert('errors leeg');
      }

      return false;
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

javascript validation jquery

0
推荐指数
1
解决办法
6637
查看次数

为什么这个bash函数不能像直接运行那样工作?

我写了一个函数,/etc/bashrc因为我经常使用它,但现在它似乎不起作用:

function replaceall() {
  find "$1" -type f -exec sed -i "s|$2|$3|g" {} \;
}
Run Code Online (Sandbox Code Playgroud)

直接运行时,我会做类似的事情:

find ./*/conf/production/*.conf -type f -exec sed -i "s|/home/user/sites|/var/www/vhosts|g" {} \;
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.但是在使用该replaceall函数调用时它不起作用:

replaceall ./*/conf/production/*.conf "/home/user/sites" "/var/www/vhosts"
Run Code Online (Sandbox Code Playgroud)

注意:它在我使用时确实有效,replaceall . [...]这让我想知道,我是否遗漏了一些重要的语法?

bash sed find

0
推荐指数
1
解决办法
38
查看次数