如何计算AVAssetWriter进程的进度?所以,如果我有类似的东西:
[assetWriterInput requestMediaDataWhenReadyOnQueue:queue usingBlock:^{
while (1){
if ([assetWriterInput isReadyForMoreMediaData]) {
CMSampleBufferRef sampleBuffer = [audioMixOutput copyNextSampleBuffer];
if (sampleBuffer) {
[assetWriterInput appendSampleBuffer:sampleBuffer];
CFRelease(sampleBuffer);
} else {
[assetWriterInput markAsFinished];
break;
}
}
}
}];
Run Code Online (Sandbox Code Playgroud)
我可以在循环中拉动(或轮询)以确定我完成了多少x?
谢谢.
我正在开发一个控制其他正在运行的应用程序的实用程序.在某些输入事件中,我的应用程序显示一个窗口,用户可以从窗口中选择一些操作,窗口消失并且控件返回到上一个应用程序.我的问题是点击我的应用程序窗口激活我的应用程序,从而从前一个应用程序的窗口中删除焦点.当我的窗口关闭时,我可以重新激活以前的应用程序,但我宁愿保持原始应用程序一直处于激活状态.那可能吗?
完整断言如下!
我正在尝试在全新的Sandy Bridge iMac Core i5上以全新的XCode 4安装(4.0.2)打开我们的项目.这个项目在我的旧MacMini和我的合作伙伴的Core 2 Duo iMac上工作并继续工作.
我怀疑这可能是由于这台新机器从未安装过任何旧版本的XCode 4或XCode 3以及旧的SDK.只需4.02,随便随之而来.这是我能想到的唯一......也是我们在机器之间唯一的区别.确实下面指定的文件不存在...所以它产生PCH的问题可能是???
任何人都可以帮忙吗?
我们无法在新机器上打开我们的XCode项目,下面的断言最不友好......
谢谢!
ASSERTION FAILURE in /SourceCache/IDEFoundation/IDEFoundation-287/Framework/Classes/Index/IDEIndex.m:2186
Details: Error launching clang to create PCH file: /Users/sukichima/Library/Developer/Xcode/DerivedData/LeapLanguage-gtjaysymsmxhiifrufylngcjwyxb/Index/PrecompiledHeaders/LeapLanguage_Prefix-bvjcknzwkkcgeydmvtyeuddafzgu_ast/LeapLanguage_Prefix.pch.pth
Error Domain=NSPOSIXErrorDomain Code=2 "The operation couldn’t be completed. No such file or directory"
Object: <IDEIndex: 0x200c257c0>
Method: -createPCHFile:willIndex:arguments:
Thread: <NSThread: 0x2036dfe80>{name = (null), num = 12}
Hints: None
Backtrace:
0 0x0000000100949773 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in IDEKit)
1 0x000000010006d394 _DVTAssertionFailureHandler (in DVTFoundation)
2 0x0000000100564e3d __46-[IDEIndex createPCHFile:willIndex:arguments:]_block_invoke_0 (in IDEFoundation)
3 0x0000000100005fdc __38-[DVTDispatchLock performLockedBlock:]_block_invoke_0 (in …Run Code Online (Sandbox Code Playgroud) 我需要这样做:
+(void)initialize{
...my stuff...
[super initialize];
}
Run Code Online (Sandbox Code Playgroud)
也就是说,如果我initialize从NSObject我的App Delegate中的父类()覆盖,我需要确保超级实现也被调用?或者这不适用,因为这不是实例方法?
这种方法有多"安全"?我正在实现iNotify库,文档建议将此设置添加到此方法中,但我以前没有将它用于应用程序中的任何内容,并且还想知道它是否可能与其他意外冲突?
我拍了一张13.3MB的图像并将其添加到XCode中.我知道在编译时,XCode会执行一些技巧来降低文件大小.我做了这个,在转换成数据后测试图像现在有多大:
UIImage *image = [UIImage imageNamed:@"image.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
NSLog(@"length: %i", data.length);
Run Code Online (Sandbox Code Playgroud)
我回来的时间是26758066.如果那是以字节为单位,那么它读取为26.7MB.图像突然变得如此之大?我是否还有另一种方法可以在不首先通过UIImage的情况下以数据形式获取图像?
编辑:进一步的测试表明这是有效的,并带来~13.3MB的数据长度 - 预期的数量:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSLog(@"length: %i", data.length);
Run Code Online (Sandbox Code Playgroud) 鉴于此代码示例:
CGFloat a = 1;
CGFloat b = 2;
CGFloat c = fabsf(a-b);
Run Code Online (Sandbox Code Playgroud)
当前的Xcode beta编译器给了我这个警告:
Absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value
Run Code Online (Sandbox Code Playgroud)
为什么?
我有两个班,一个接一个的子类(比如Animal和Dog).超类有一些初始化器(比方说initAnimal),子类有一些初始化器(比方说initDog).问题是完全合法(从编译器的角度来看)做类似的事情Dog *adog = [[Dog alloc] initAnimal],即.使用超类初始化程序初始化类.我不喜欢这个,因为子类可以有一些我想确保初始化的额外实例变量.查看头文件可以解决这个问题,但有一种简单的方法可以让编译器检查一下吗?我有一种感觉,我错过了一些非常明显的东西,但我不能把手指放在它上面:-)
更新:在initDog和initAnimal不是最好的例子.我的意思是两个非常不同的初始化器(比如initfor Animal和initWithFurfor Dog).如果我希望每只狗都分配一些毛皮,我会将毛皮作为初始化器的一部分,这样就没有人可以获得没有皮毛的狗对象了.但是后来用超类错误地初始化实例仍然很容易init,然后我就被软管了.
感谢您提出指定的初始化程序,杰森.之前我没有想过,但我可以重载超类的指定初始化程序并在那里设置一些合理的默认值.但是我仍然更愿意,如果我能以某种方式使用其他初始化程序而不是类本身的那些非法 - 更多的想法?
最近我开始模仿我的应用程序比以往更加激烈,将代码片段分成框架或库.
我喜欢桌面Cocoa中"私有框架"的概念,即.应用程序包中包含的框架.从我的小经验来看,框架比简单的库更适合代码重用,因为框架可以包含它们自己的头文件.这使得为现有项目添加新框架变得更加容易.
问题是iOS上不支持这些"私有"框架.你必须在那里使用静态库,标题管理很痛苦.有没有一个很好的技术理由让Apple不支持iOS上的框架?
(只是为了确保:Apple不幸使用"私有框架"这两个术语.第一个是与应用程序一起提供的"自定义"框架,第二个是未记录的框架,人们不应该在iOS上使用这些框架.我问起前者.)
PS.这是iOS 8中的变化吗?Xcode 6中有一个"Cocoa Touch Framework"模板.
我在主应用程序菜单中有一个菜单项,我想将其动作路由到视图控制器(NSViewController).界面层次结构如下所示:有一个主应用程序窗口控制器NSWindowController.在窗口内部有一个分割视图,分割视图中的右视图由分割视图控制NSViewController.
Window + NSWindowController
`-- NSSplitView
`-- NSView
`-- NSView + NSViewController
Run Code Online (Sandbox Code Playgroud)
菜单项连接到Interface Builder中的First Responder.有问题的视图控制器实现了适当的方法,但菜单项保持禁用状态.当我将方法移动到NSWindowController,菜单项被启用.
我想我需要将视图控制器放到响应器链中,所以我将其设置nextResponder为窗口控制器; 没有雪茄.我究竟做错了什么?
我对如何将十六进制值存储到NSData感到困惑.我想要存储的价值0x0F.
请有人给我举个例子吗?
objective-c ×6
ios ×4
iphone ×4
cocoa ×3
macos ×2
nsdata ×2
xcode ×2
avfoundation ×1
focus ×1
frameworks ×1
hex ×1
inheritance ×1
ipad ×1
nsmenuitem ×1
nsresponder ×1
oop ×1
uiimage ×1
xcode4 ×1