小编Orp*_*ury的帖子

AVAssetExportSession的进度条

我有一个将应用程序导出AVMutableComposition.mov文件中的应用程序,我希望用户使用进度条查看导出状态的方式与发送文本消息或上传文件时的方式相同.

我知道如何在知道任务的持续时间(例如播放音频文件)时创建进度条,但由于导出没有设定的持续时间,我不确定如何继续.

我目前有一个活动指示器,但它没有提供最佳的用户体验.

有没有人有任何指针?

iphone cocoa-touch uiprogressview avassetexportsession

18
推荐指数
2
解决办法
8633
查看次数

iOS 6弃用viewWillUnload并移至didReceiveMemoryWarning

我是新开发者,即将推出我的第一款应用.我对viewDidUnloadApple的iOS 6发行说明中所述的弃用感到困惑:

在iOS 6中,现在不推荐使用UIViewController的viewWillUnload和viewDidUnload方法.如果您使用这些方法来释放数据,请改用didReceiveMemoryWarning方法.如果未使用此方法,也可以使用此方法释放对视图控制器视图的引用.在执行此操作之前,您需要测试视图不在窗口中.

为什么会这样?我应遵循哪些指导原则来确保此更改不会在我的应用中导致任何性能问题?

谢谢.

cocoa-touch objective-c didreceivememorywarning viewdidunload ios6

16
推荐指数
3
解决办法
1万
查看次数

将远程I/0输出写入和编码到文件 - Core Audio

我正在使用音频单元对音乐录制应用进行编码,我遇到了一些问题,让我生成的M4A文件播放除了不那么棒的嗡嗡声之外的任何其他内容.我已经使用这些SO 资源 作为 参考,我已经尝试了一切来排除故障.

我有一个AUGraph2节点:一个多通道混音器和一个远程I/O. 我的调音台上有两个输入回调:一个用于从麦克风输入输入,另一个用于从音频文件中提取.混频器输出连接到I/O单元上输出范围的输入元件.这可以实现同步I/O.

为了捕获输出,我添加了一个回调和两个方法:

回调

static OSStatus recordAndSaveCallback (void *                inRefCon,
                                       AudioUnitRenderActionFlags * ioActionFlags,
                                       const AudioTimeStamp *       inTimeStamp,
                                       UInt32                       inBusNumber,
                                       UInt32                       inNumberFrames,
                                       AudioBufferList *            ioData) 
{
    Mixer* THIS = (__bridge Mixer*)inRefCon;
    AudioBufferList bufferList;

    OSStatus status;
    status = AudioUnitRender(THIS.ioUnit,    
                             ioActionFlags,
                             inTimeStamp,
                             0,
                             inNumberFrames,
                             &bufferList);

    SInt16 samples[inNumberFrames]; // A large enough size to not have to worry about buffer overrun
    memset (&samples, 0, sizeof (samples));

    bufferList.mNumberBuffers = 1;
    bufferList.mBuffers[0].mData = samples;
    bufferList.mBuffers[0].mNumberChannels = 1;
    bufferList.mBuffers[0].mDataByteSize = …
Run Code Online (Sandbox Code Playgroud)

iphone core-audio

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

创建一个在AVMutableVideoComposition中以一定间隔更改的CATextlayer

我有一个应用程序,允许用户以可变组合录制视频.我想设置一些文本,然后在用户在导出后播放时设置的间隔进行更改.

例如,如果第一个单词是"dog",那么我想设置它以便"cat"在X秒后替换该字符串,然后在X秒后用另一个单词替换.

我的视频是使用AVExportSession从AVMutableComposition导出的,我的文字将使用添加的CATextlayer添加,如下所示:

//code to setup AVMutableComposition
...
//code to setup CATextLayer and AVMutableVideoComposition
    CALayer *animatedTitleLayer = [CALayer layer];
    CATextLayer *titleLayer = [[CATextLayer alloc] init];
    titleLayer.string = @"Text I want to change at an interval";
    titleLayer.alignmentMode = kCAAlignmentCenter;
    titleLayer.bounds = CGRectMake(150, 50, 124, 354);
    titleLayer.position = CGPointMake(120, 270);
    titleLayer.bounds = CGRectIntegral(CGRectMake(0, 0, 250, 150));
    titleLayer.opacity = 1;
    titleLayer.backgroundColor = [UIColor purpleColor].CGColor;   
    [animatedTitleLayer addSublayer:titleLayer];
    animatedTitleLayer.position = CGPointMake(40, 5);        
    CALayer *parentLayer = [CALayer layer];
    CALayer *videoLayer = [CALayer layer];
    parentLayer.frame = CGRectMake(0, …
Run Code Online (Sandbox Code Playgroud)

core-animation ios avmutablecomposition catextlayer

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

在 UIWebView 中播放 Facebook 视频

有谁知道如何在UIWebView.

我的应用程序将视频上​​传到 Facebook 并检索视频的网址。我想把这个 url 嵌入到 aUIWebView中播放。我已经为 youtube 而不是 Facebook 解决了这个问题。寻求帮助。

facebook uiwebview ios

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

如何限制NSLog中的NSArray输出

我想限制NSArray的输出.

如果我的NSArray有,请说5个NSStrings:

NSArray *alphaList = [NSArray arrayWithObjects:@"v", @"w", @"x", @"y", @"z", nil];
Run Code Online (Sandbox Code Playgroud)

显然编码:

NSLog(@"%@", alphaList);
Run Code Online (Sandbox Code Playgroud)

将输出所有5个NSString对象.

我想知道是否有办法将输出限制为"n"个对象.

我希望有一种方法可以通过在格式说明符中添加一个数字来实现这一点,但它看起来不太可能.

有什么建议?

cocoa objective-c limit nsarray

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

iPhone应用程序设计故事板与笔尖

作为一个初级开发人员,我想知道使用Storyboard与.nib文件构建应用程序界面的优缺点.

我知道:

  • 据说故事板简化了创建界面的过程
  • 使用故事板创建的应用程序与运行iOS 5之前的设备不兼容

但是,我想问一下有经验的人,使用一种方法而不是另一种方法可能会出现无法预料的缺点或优点,以及经验丰富的开发人员建议开始使用的方法.(我将开发用于个人和商业用途.)

非常感谢你!

iphone user-interface cocoa-touch nib xcode-storyboard

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

在iPhone词典应用程序实践中的模型 - 视图 - 控制器

我是一个新开发人员,创建一个供个人使用的简单"字典"应用程序,我的问题是如何在我的特定情况下正确实现模型 - 视图 - 控制器设计.请耐心等待我的背景:

我希望能够点击一个按钮并在屏幕的一侧显示一个标签,并让另一个标签显示另一侧的相关字词列表.

例如:当我按下按钮时,我希望主标签显示"猫",列表显示"老虎","雪豹","狮子"等.输出将是随机的:显示的标签将是随机,列表将被扰乱.

我已经在Xcode 4.3控制台中通过将每个列表存储在NSMutableArray中并使用NSDictionary来保存所有NSArray来实现此输出.这是代码:

//creates lists
NSArray *catList = [NSArray arrayWithObjects:@"Lion", @"Snow Leopard", @"Cheetah", nil];
NSArray *dogList = [NSArray arrayWithObjects:@"Dachshund", @"Pitt Bull", @"Pug", nil]; 
...
//creates dictionary and stores lists values with dictionary keys
NSMutableDictionary *wordDictionary = [[NSMutableDictionary alloc] init];
[wordDictionary setObject: catList forKey:@"Cats"];
[wordDictionary setObject: dogList forKey:@"Dogs"]; 
...
//randomizes selection of dictionary key
NSInteger keyCount = [[wordDictionary allKeys] count];
NSInteger randomKeyIndex = arc4random() % keyCount;
//displays selected key, which is the main word
NSLog(@"%@", …
Run Code Online (Sandbox Code Playgroud)

iphone model-view-controller cocoa-touch xcode4.3

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

从NSArray输出中删除括号和逗号

我正在使用以下代码片段来处理我正在努力打印iPhone屏幕上的单词列表的应用程序:

    NSString *labelText = [[NSString alloc] initWithFormat:@"%@", [self.dictionary selectList]];
//creates a string list from an NSDictionary key with a value of an NSArray that has NSString objects in it
    self.listLabel.text = labelText;
//displays list in label
Run Code Online (Sandbox Code Playgroud)

列出的单词显示在标签中的多行上,但是数组由括号括起并用逗号分隔.

例如,如果我有一个NSDictionary键@"Cat",它有一个NSArray值,如下所示:@"snow leopard",@"lion",@"tiger",那么我在屏幕上的输出将如下:

(
snow leopard,
lion,
tiger
)
Run Code Online (Sandbox Code Playgroud)

有没有办法摆脱这个标点符号?

谢谢!

iphone cocoa-touch objective-c nsarray

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

如何在给定的时间内显示NSArray

我是一个新的开发人员,在开始编写一个简单的字典应用程序供iPhone上的个人使用,我想知道用什么方法来控制我的单词在屏幕上显示多长时间.

我已经尝试过NSTimer,performSelector:withObject:afterDelay:但我想知道这些是否是解决问题的最简单,最有效的方法.

我不确定是否应该使用睡眠方法,NSThread sleepForTimeInterval:因为我希望在屏幕上单词列表时可以选择在应用程序中进行其他操作.

有什么指针吗?

一百万谢谢.

iphone cocoa-touch timer objective-c ios

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