看着在开发中添加一些数据图形到一个新的iPhone应用程序(ala the Stocks应用程序).
我意识到我可以扣下并做一些Quartz绘图,但是我希望有人在某个地方有一个关于Cocoa图形框架的提示,该框架适用于iPhoneOS.
有什么建议?如果它在那里重新发明轮子将是一个耻辱.
我想将视频从iPhone相机流式传输到Mac上运行的应用程序.想想视频聊天,但只有一种方式,从设备到接收器应用程序(它不是视频聊天).
到目前为止我的基本理解:
我对上述情况是对的还是我已经偏离了轨道?
Apple Tech Q&A 1702提供了一些关于将单个帧保存为图像的信息 - 这是最好的解决方法吗?只需保存30fps,然后像ffmpeg那样压缩它们?
有很多关于iPhone直播的讨论,但关于发送实时视频的人的信息要少得多.我希望有一些广泛的笔触让我指向正确的方向.
使用ARC处理面向4.0和5.0的iOS项目.
遇到与块相关的问题,ARC和从块外部引用对象.这是一些代码:
__block AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setCompletionBlock:^ {
if ([operation isCancelled]) {
return;
}
... do stuff ...
operation = nil;
}];
Run Code Online (Sandbox Code Playgroud)
在这种情况下,编译器会发出一个警告,即在块中使用"operation"将导致保留周期.在ARC下,__block现在保留变量.
如果我添加__unsafe_unretained,编译器会立即释放该对象,因此显然不起作用.
我的目标是4.0,所以我不能使用__weak.
我尝试过这样的事情:
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
__block __unsafe_unretained AFHTTPRequestOperation *weakOperation = operation;
Run Code Online (Sandbox Code Playgroud)
但是虽然weakOperation不是nil,但是当在块内部时,它们的属性都不会被填充.
鉴于上面列出的项目限制,处理这种情况的最佳方法是什么?
我有一个UITableView,在某些情况下,某些部分有零行.我的目标是,当这是真的,我不希望在表视图中浪费任何空间,它看起来应该没有数据.
我遇到的问题是这些部分的页眉和页脚,即使没有行也会显示,尽管我重写了委托方法以返回0.0f.
这是它的样子 - 你可以在那里看到顶部约20p的灰色空间,每个约10p的页眉和页脚用于0行的部分.
替代文字http://www.hanchorllc.com/table_cells.png
这是我的伪代码:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if ([section hasRow]) {
return 10.0f;
} else {
return 0.0f;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
if ([section hasRow]) {
return 10.0f;
} else {
return 0.0f;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经验证了这些方法正在被调用,并且正在执行正确的执行路径.
一个皱纹 - 这个视图控制器正在使用XIB,并且UITableView的节头和页脚值设置为10.0(默认值),尽管我认为它被委托方法覆盖,如果实现的话.
这是一款定位于3.0的应用.
我究竟做错了什么?
我正在使用前置摄像头在iPhone 4上拍摄视频,并将视频与其他媒体资产相结合.我希望这个视频是纵向的 - 所有视频的默认方向都是横向,在某些情况下,您必须手动管理.
我正在使用AVFoundation,特别是AVAssetExportSession和AVMutableVideoComposition.基于WWDC视频,当我将视频组合成新的构图时,我必须自己处理"修正"方向.
所以,我创建了一个附加到我的AVMutableVideoCompositionInstruction的AVMutableVideoCompositionLayerInstruction,我使用setTransform:atTime:方法来设置一个用于旋转视频的变换:
AVMutableVideoCompositionLayerInstruction *passThroughLayer = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:videoTrack];
CGAffineTransform portraitRotationTransform = CGAffineTransformMakeRotation(degreesToRadians(90.0));
[passThroughLayer setTransform:portraitRotationTransform atTime:kCMTimeZero];
Run Code Online (Sandbox Code Playgroud)
问题是,当我查看导出的视频时,屏幕上没有任何实际内容.如果我将旋转角度减小到45度,我可以在屏幕上看到部分视频 - 这几乎就像它不是在中心点旋转一样.我在下面包含图片,以便更清楚地说明我在说什么.
视频的自然尺寸为480x360.我已经尝试将其更改为360x480,但它不会影响核心问题.
0度旋转:

45度旋转:

90度旋转只是全绿色.
无论如何,我希望之前做过这件事的人可以指出我正确的方向.我找不到有关AVFoundation合成和导出中某些更高级主题的文档.
我正在寻找基于Objective-C的iOS应用程序中的性能问题的帮助.
我有一个iOS应用程序,使用CALayer的renderInContext方法捕获屏幕的内容.它尝试捕获足够的屏幕帧以使用AVFoundation创建视频.然后将屏幕记录与其他元素组合以用于可用性的研究目的.在捕获屏幕时,应用程序也可能正在显示UIWebView的内容,通过网络外出以获取数据等...... Web视图的内容不受我的控制 - 它是来自的任意内容网页.
这个设置正在运行,但正如您可能想象的那样,它并非如此顺畅.由于图层必须在主线程上呈现,因此UI争用比我想要的多.我想要做的是设置一个设置,其中UI的响应性优先于屏幕捕获.例如,如果用户正在滚动Web视图,我宁愿丢弃录制中的帧而不是可怕的滚动体验.
我已经尝试了几种技术,从dispatch_source合并到将帧捕获请求作为块提交到主队列到CADisplayLink.到目前为止,他们似乎都表现得差不多.帧捕获当前正在屏幕主视图的drawRect中触发.
我在这里问的是:鉴于上述情况,您会建议我尝试实现目标的技巧是什么?我意识到答案可能是没有很好的答案......但我想尝试任何事情,不管它听起来多么古怪.
注意:无论什么技术需要App Store友好.不能使用Display Recorder使用/使用的CoreSurface hack之类的东西.
谢谢你的帮助!
在使用Xcode 11b2提交的构建中,成功上传构建后,几分钟后我收到一封电子邮件,其中包含以下消息:
ITMS-90562: Invalid Bundle - The app submission can not be successfully recompiled from bitcode due to missing symbols during linking. You can try to reproduce and diagnose such issues locally by following the instructions from: https://developer.apple.com/library/archive/technotes/tn2432/_index.html
Run Code Online (Sandbox Code Playgroud)
通过该链接,我可以导出具有位码的临时构建,而在本地没有任何错误,因此似乎并没有太大帮助。
我也尝试过提交带有启用和禁用位代码复选框的构建,尽管有问题的应用程序包括Apple Watch应用程序,并且该平台始终需要位代码,因此可能没有任何实际区别。
有人以前看到过这个,知道如何解决吗?
我的应用程序有一组类别.类别可以包含子类别.
DirectoryCategoryController是第一个显示所有顶级类别的屏幕.效果很好.当您点击一个单元格时,如果选择的类别具有子类别,我实例化DirectoryCategoryController的新实例并将其推送以显示子类别.从那里,您点击子类别并查看内容.
问题是虽然顶级工作正常,但当我点击并查看子类别时,表视图将不会滚动.搜索栏接受触摸,表格单元格进行触摸,但上下滚动不起作用,就像表格视图在空间中垂直冻结一样.
如果我点击搜索栏并点击取消或者如果我进入子类别内容然后回击,那么没有滚动的同一个表视图就可以了.
此外,如果表格视图中的项目数量多于屏幕上适合的项目(此布局中大于8的任何项目),则一切正常.
很奇怪的问题; 有点儿在吹我的脑海.任何见解?
我有一个基于nib的UITableViewController,它在iPad上运行时呈现在UIPopoverController中,并在iPhone上运行时呈现"本机".
在iPad上运行时,控制器的self.tableView属性在整个生命周期内都是零.作为正常操作的一部分在tableView中传递的委托消息可以正常工作并具有对表视图的引用.
在iPhone上,属性已设置,引用有效,如您所料.
任何特定的东西都可能导致self.tableView属性为零?我已经仔细检查了Interface Builder中的连接 - Nib只包含一个表视图和相关的UISearchBar.Nib中的表视图被设置为视图控制器的视图.
这是在两台设备上的4.2.1.绞尽脑汁,无法找到我的错误.
使用CloudKit.js,如何构建一个匹配字段为零的项的查询?我尝试过的每个排列都失败了 - 要么它在字符串值上明显匹配(即"null"或"nil"),要么我实际尝试传递'null'时会抛出错误.
有任何想法吗?以下都不起作用.
filterBy: [{
fieldName: 'customerNumber',
comparator: 'EQUALS',
fieldValue: { value: "nil" }
}]
filterBy: [{
fieldName: 'customerNumber',
comparator: 'EQUALS',
fieldValue: { value: null }
}]
filterBy: [{
fieldName: 'customerNumber',
comparator: 'EQUALS',
fieldValue: { value: "null" }
}]
filterBy: [{
fieldName: 'customerNumber',
comparator: 'EQUALS',
fieldValue: { value: "" }
}]
Run Code Online (Sandbox Code Playgroud) 我正在尝试安装“quadrupel”,这是一个依赖于 Solaris x86 上的 ffmpeg 的库。
我设法在 /opt/gnu/lib 中构建了 ffmpeg 及其库,并且包含在 /opt/gnu/include 中,但是当我尝试构建 quadrupel 时,它找不到 ffmpeg 头文件。
需要什么标志/配置才能将这两个目录包含在库和包含的正确搜索路径中?我不是一个 Makefile 黑客。
iphone ×8
ios ×6
avfoundation ×3
cocoa-touch ×3
uitableview ×2
afnetworking ×1
app-store ×1
bitcode ×1
cloudkit ×1
ffmpeg ×1
gcc ×1
graph ×1
ios4 ×1
ios5 ×1
ipad ×1
makefile ×1
solaris ×1
xcode ×1