关于新的NSManagedObjectContext并发类型,目前文献似乎有点稀疏.除了WWDC 2011 vids以及我在此过程中提到的其他一些信息之外,我仍然很难掌握每种并发类型的使用方式.以下是我如何解释每种类型.如果我理解错误,请纠正我.
这种类型在过去几年中一直是常态.MOC被屏蔽了每个线程.因此,如果线程A MOC想要通过保存消息合并来自线程B MOC的数据,则线程A将需要订阅线程B的MOC保存通知.
每个MOC树(父级和子级MOC)共享相同的队列,无论每个都在哪个线程上.因此,每当发送来自任何这些上下文的保存消息时,它都被放入专门为此MOC树制作的私有提示中.
仍然对这个感到困惑.从我收集的内容就像NSPrivateQueueConcurrencyType一样,只有私有队列在主线程上运行.我读到这对于与MOC的UI通信是有益的,但为什么呢?为什么我会选择NSPrivateQueueConcurrencyType?我假设因为NSMainQueueConcurrencyType在主线程中执行,这是否允许后台进程?这不是不使用线程吗?
我正在玩Apple的示例项目"LoadPresetDemo".我已将混响音频单元添加AudioUnit kAudioUnitSubType_Reverb2到图表中,这是唯一可用的iOS混响.在CoreAudio头文件"AudioUnitParameters.h"中,它声明Reverb2应该响应这些参数:
enum {
// Global, CrossFade, 0->100, 100
kReverb2Param_DryWetMix = 0,
// Global, Decibels, -20->20, 0
kReverb2Param_Gain = 1,
// Global, Secs, 0.0001->1.0, 0.008
kReverb2Param_MinDelayTime = 2,
// Global, Secs, 0.0001->1.0, 0.050
kReverb2Param_MaxDelayTime = 3,
// Global, Secs, 0.001->20.0, 1.0
kReverb2Param_DecayTimeAt0Hz = 4,
// Global, Secs, 0.001->20.0, 0.5
kReverb2Param_DecayTimeAtNyquist = 5,
// Global, Integer, 1->1000
kReverb2Param_RandomizeReflections = 6,
};
Run Code Online (Sandbox Code Playgroud)
在AUGraph初始化并启动后,所有内容都会编译,我听到了声音.
接下来,我改变了kReverb2Param_DryWetMix参数(改为完全湿混合):
AudioUnitSetParameter(_reverbUnit, kAudioUnitScope_Global, 0, kReverb2Param_DryWetMix, 100.0f, 0);
Run Code Online (Sandbox Code Playgroud)
一切都很好,我听到完全湿混合混响的声音.
现在听到的是我遇到问题的地方.当试图改变除kReverb2Param_DryWetMix我得到错误代码之外的任何参数-10877.似乎头文件中列出的这些其他参数实际上并不存在.
例如,打电话
AudioUnitSetParameter(_reverbUnit, kAudioUnitScope_Global, 0, …Run Code Online (Sandbox Code Playgroud) UITableView具有内置动画,在重新排序单元格之后,它会轻轻地放入空置空间.在动画结束后,是否有地方可以使用某种通知?我想在完成后调用一个方法.目前我正在使用performSelector:withObject:afterDelay:哪个工作正常,但我想知道是否有可能完成动画.
重申一下,我不是在谈论自定义动画,只是在UITableView中内置的动画.
我一直在寻找,似乎无法收集答案.