小编Gar*_*lph的帖子

AVPlayer视频空白但听到声音

我正在切换MPMoviePlayerControllerAVPlayer我需要对视频交换进行更细粒度的控制..mov我正在播放的文件MPMoviePlayerController播放得很好,但在切换到AVPlayer我听到视频中的音频后,视频只显示我添加AVPlayerLayer到的视图背景.这是我如何初始化AVPlayer.

self.player = [[AVPlayer alloc] initWithURL:video];

AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
playerLayer.frame = self.playerContainer.bounds;
[self.playerContainer.layer addSublayer:playerLayer];
Run Code Online (Sandbox Code Playgroud)

后来我发了一个.

[self.player play];
Run Code Online (Sandbox Code Playgroud)

播放视频时,我会听到音频,但看不到视频.我也尝试将zPosition设置为没有运气.

playerLayer.zPosition = 1;
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios avplayer avplayerlayer

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

将NSArray内容转换为varargs(使用ARC)以与NSString initWithFormat一起使用

我们今天有一些代码接受NSArray并将其作为参数列表传递给 - [NSString initWithFormat:arguments],我们试图让它与ARC一起工作.这是代码使用的

NSString* format = @"Item %s and Item %s"; // Retrieved elsewhere
NSArray* args = [NSArray arrayWithObjects:@"1", @"2", nil]; // Retrieved elsewhere

// http://cocoawithlove.com/2009/05/variable-argument-lists-in-cocoa.html
char* argsList = (char*) malloc(sizeof(NSString*) * args.count);
[args getObjects:(id*) argsList];
NSString* message = [[[NSString alloc] initWithFormat:format arguments:argsList] autorelease];
free(argsList);
Run Code Online (Sandbox Code Playgroud)

有关如何使ARC符合要求的任何建议?或者我们甚至愿意接受更好的方式.

objective-c variadic-functions automatic-ref-counting

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

iOS模拟类对类加载有副作用

我们正在尝试创建一个单元测试(使用OCMock,虽然对其他框架开放),这样可以模拟一个在类加载时产生副作用的类.

我们有一个跟踪类,可以调用其他跟踪库,如Flurry.

许多其他跟踪库(特别是Flurry)在类初始化时执行代码.

单元测试失败,因为代码无法在单元测试环境中执行.理想情况下,我们想用mock/stub替换Flurry类.

- (void) testConstruction {
    [Flurry class];
}
Run Code Online (Sandbox Code Playgroud)

当调用此代码时,它会尝试使用SCNetworkReachability和接收exceptions...

我们如何存根/模拟对具有如下静态实现的Flurry的调用?

[Flurry setAppVersion:@"1.0"];
[Flurry setCrashReportingEnabled:NO];
Run Code Online (Sandbox Code Playgroud)

unit-testing ocmock flurry ios xctest

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

问题导航器中的每个目标上都重复出现 Xcode 错误

在 Xcode 14.3.1(及更早版本)中,我有多个目标(调试、开发、测试版和生产)。当我为单个目标构建时,我会在每个目标的问题导航器中看到错误。有人遇到过这个问题并有解决方案来消除这些重复的问题吗?我注释掉了一个导入以演示错误的重复。我正在为调试目标构建,但它在所有目标上都显示问题。此外,这种情况发生在多台计算机上,因此不是派生数据问题(尽管我已经清除了这一点)。

重复问题导航器

此外,如果我关闭并重新打开 Xcode,它最初打开时仅显示一个问题,直到它重新索引,然后再次显示重复项。

非重复问题导航器

xcode xcode14.3

8
推荐指数
0
解决办法
106
查看次数