小编zou*_*oul的帖子

我如何使用AVAssetWriter?

我想拍摄一些视频帧并将它们编码成视频.看起来这正是它的AVAssetWriter意思,但无论我如何看待文档和谷歌我都找不到任何方法来实际使用它.从文档中看起来我需要一个input(AVAssetWriterInput)来从中提供编写器.精细.但是这个AVAssetWriterInput类是抽象的,我在4.1中知道的唯一子类是AVAssetWriterInputPixelBufferAdaptorAVAssetWriterInput在初始化器中需要一个......?我错过了一些明显的东西吗?

avfoundation ios avassetwriter

17
推荐指数
1
解决办法
2万
查看次数

你如何在svn diff中获得一个寻呼机?

我想svn diff通过寻呼机显示彩色差异(就像git一样).通过设置diff-cmdin,我已成功获得彩色差异~/.subversion/config:

diff-cmd = colordiff
Run Code Online (Sandbox Code Playgroud)

现在我想通过寻呼机管道差异输出,我该怎么做?(svn diff | less当然没有写作.)

svn diff

16
推荐指数
2
解决办法
2352
查看次数

如何使用NSUserDefaults进行测试?

在我的大多数使用默认值的类中,我将默认对象设置为可设置:

@property(retain) NSUserDefaults *defaults;
Run Code Online (Sandbox Code Playgroud)

这应该使测试更容易:

// In a nearby test class:
- (void) setUp {
    [super setUp];
    NSUserDefaults *isolatedDefaults = [[NSUserDefaults alloc] init];
    [someObjectBeingTested setDefaults:isolatedDefaults];
}
Run Code Online (Sandbox Code Playgroud)

但是现在我发现当我创建一个新的默认对象时,它已经有了一些值.那可能吗?我以为我可以通过调用创建一个空的,独立的默认对象-init.我是否在测试代码中的某处有错误,或者如果我想测试基于默认值的代码,我是否真的需要做一些更复杂的事情(如存根或模拟)?

cocoa unit-testing nsuserdefaults

16
推荐指数
2
解决办法
6049
查看次数

有什么办法在do/while/let块中打印出一个变量类型?

有没有办法打印出嵌套变量的推断类型ghci?考虑一下代码,

let f = g where
    g (x :: Int) = x
Run Code Online (Sandbox Code Playgroud)

然后,查询类型会很好g,例如:t f.g打印出来Int -> Int.

haskell ghci

15
推荐指数
2
解决办法
8117
查看次数

我可以在模拟器中运行旧的应用程序存档吗?

当我们通过XCode将新版本的iOS应用程序部署到App Store时,会生成一个存档.

有没有办法获取旧存档并在模拟器中运行它?我想这样做是为了能够轻松测试服务器端代码与所有以前版本的应用程序(或至少当时主要使用的两个版本)的向后兼容性.

我知道我可以提交到GIT存储库并提取特定版本,但这有两个问题:a.它比简单地运行档案更复杂,b.它很容易出错,并且在它完成的机器上停止开发新版本,并且c.可能存在一些与编译器更改有关的偏差,或者在渲染版本难以编译之间的任何其他XCode更改.

我在StackOverflow上找不到任何帮助,也没有在XCode的Archive存储库中找到这种可能性的任何迹象.我应该提交功能请求@ Apple吗?

xcode objective-c ios

15
推荐指数
2
解决办法
5430
查看次数

用Swift 4的可解码解码Void

我有一个通用的REST请求:

struct Request<T> {…}
Run Code Online (Sandbox Code Playgroud)

T是请求的返回类型,例如:

struct Animal {…}
let animalRequest = Request<Animal>
let animal: Animal = sendRequest(animalRequest)
Run Code Online (Sandbox Code Playgroud)

现在我想表达泛型类型必须符合,Decodable以便我可以解码来自服务器的JSON响应:

struct Request<T> where T: Decodable {…}
struct Animal: Decodable {…}
Run Code Online (Sandbox Code Playgroud)

这是有道理和有效的 - 直到我得到一个没有响应的请求,a Request<Void>.编译器对此不满意:

Type 'Void' does not conform to protocol 'Decodable'
Run Code Online (Sandbox Code Playgroud)

我通过添加Decodable一致性来解决这个问题的错误尝试Void很快被编译器发现:

extension Void: Decodable {…} // Error: Non-nominal type 'Void' cannot be extended
Run Code Online (Sandbox Code Playgroud)

将请求通用于返回类型是正确的.有没有办法让它与Void返回类型一起使用?(例如,只在服务器上创建内容并且不返回任何内容的请求.)

json swift decodable

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

如何分离不同类型的Perl测试,以便我不必全部运行它们?

我注意到在Perl中,自定义是将所有测试都粘贴到t目录中.你如何将单元测试与功能测试分开?或者,为了使问题更简单,更明显,如何将快速运行的测试与不快速运行的测试分开?当所有测试一起运行时,测试需要很长时间才能在开发中经常使用,这很可惜.

我想我可以设置一些环境变量,QUICK_TEST并根据其值跳过长测试.你是否将单元和功能测试分开?怎么样?(这不是一个民意调查 - 我只是想也许有一些惯用的解决方案.)


更新:到目前为止,我已经到了这个:

package Test::Slow;

use strict;
use Test::More;

BEGIN {
    plan(skip_all => 'Slow test.') if $ENV{QUICK_TEST};
}

1;
Run Code Online (Sandbox Code Playgroud)

在附近的.t文件中:

# This is a slow test not meant
# to run frequently.
use Test::Slow;
use Test::More;
Run Code Online (Sandbox Code Playgroud)

它似乎工作得很好.

PS现在可用作测试::慢速 CPAN.

testing perl unit-testing

14
推荐指数
2
解决办法
406
查看次数

如何将CGImage转换为CMSampleBufferRef?

我想将a转换CGImageCMSampleBufferRefAVAssetWriterInput使用该appendSampleBuffer:方法将其附加到a .我已经设法CMSampleBufferRef使用以下代码,但appendSampleBuffer:只是NO在我提供结果时返回CMSampleBufferRef.我究竟做错了什么?

- (void) appendCGImage: (CGImageRef) frame
{
    const int width = CGImageGetWidth(frame);
    const int height = CGImageGetHeight(frame);

    // Create a dummy pixel buffer to try the encoding
    // on something simple.
    CVPixelBufferRef pixelBuffer = NULL;
    CVReturn status = CVPixelBufferCreate(kCFAllocatorDefault, width, height,
        kCVPixelFormatType_32BGRA, NULL, &pixelBuffer);
    NSParameterAssert(status == kCVReturnSuccess && pixelBuffer != NULL);

    // Sample timing info.
    CMTime frameTime = CMTimeMake(1, 30);
    CMTime currentTime = …
Run Code Online (Sandbox Code Playgroud)

avfoundation core-video core-media ios

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

我们可以在Mac Cocoa应用程序中使用popovers吗?

弹出窗口大量用于iPad应用程序,我真的很喜欢它们.现在我想一想如何在Mac上的AppKit中实现它,因为我有一个用例.

我是否需要NSWindow子类来完成叠加?还是我还可以使用普通视图?

cocoa

14
推荐指数
2
解决办法
6943
查看次数

在Haskell中解析XML

我正在尝试从定期提供XML文件的网页获取股票市场报价(样本数据).XML的结构非常简单,如下所示:

<?xml version="1.0"?>
<Contents>
  <StockQuote Symbol="PETR3" Date="21-12-2010" Time="13:20" Price="23.02" />
</Contents>
Run Code Online (Sandbox Code Playgroud)

(它不止于此,但这足以作为一个例子).

我想将它解析为数据结构:

 data Quote = Quote { symbol :: String, 
                      date   :: Data.Time.Calendar.Day, 
                      time   :: Data.Time.LocalTime.TimeOfDay,
                      price  :: Float}
Run Code Online (Sandbox Code Playgroud)

我或多或少地了解Parsec如何工作(在真实世界Haskell书的水平上),我尝试了一些Text.XML库,但我可以开发的是一个有效的代码,但对于这么简单的任务来说太大了,看起来像一个一半是黑客,而不是最好的.

我不知道了很多关于解析器和XML(我基本上知道我在RWH书中读到的东西,我从来没有使用解析器)(我只是做统计和数值编程,我不是一个计算机科学家).是否有一个XML解析库,我可以在其中告诉模型是什么并立即提取信息,而无需手工解析每个元素而无需解析纯字符串?

我正在考虑这样的事情:

  myParser = do cont  <- openXMLElem "Contents"
                quote <- openXMLElem "StockQuote" 
                symb <- getXMLElemField "Symbol"
                date <- getXMLElemField "Date"
                (...) 
                closequote <- closeXMLElem "StockQuote"
                closecont  <- closeXMLElem "Contents"
                return (symb, date)


  results = parse myParser "" myXMLString
Run Code Online (Sandbox Code Playgroud)

我不需要处理纯字符串并自己创建组合器(我很擅长).

编辑:我可能需要阅读一些关于解析器(不仅是Parsec)和关于XML的最小值的解释(刚刚以正确的方式完成).你们推荐一些东西吗?

我必须解析的真正字符串是这样的:

 stringTest = "<?xml …
Run Code Online (Sandbox Code Playgroud)

xml parsing haskell parsec

14
推荐指数
4
解决办法
1万
查看次数