AudioStreamBasicDescription

AudioStreamBasicDescription

我需要将AudioStreamBasicDescription结构传递给随机 View Controller 。为此,我创建了一个单例类,我想将AudioStreamBasicDescription存储在该单例类中。

当另一个 View Controller 需要使用AudioStreamBasicDescription时,我想获取该结构内部的值。

组:

sharedCache.asbdValue=[NSValue valueWithBytes:&asbd objCType:@encode(AudioStreamBasicDescription)];

得到:
sharedCache=[JITCaches sharedManager];
//AudioStreamBasicDescription asbd from singleton
NSValue *value =sharedCache.asbdValue;
AudioStreamBasicDescription desc;
asbd=[value getValue:desc];

我得到的错误是

'AudioStreamBasicDescription'(aka'struct AudioStreamBasicDescription')转换为不兼容类型的参数void

我声明asbd和singletons asbd为
AudioStreamBasicDescription asbd;   // description of the audio

我怎么解决这个问题?

最佳答案

问题(如我所知,您知道)是以下几行:

AudioStreamBasicDescription desc;
asbd=[value getValue:desc];

那不是您所说的getValue:。有两件事是错误的:
  • 您需要提供(在您说desc的地方)缓冲区的地址,而不是(您正在做的)提供未初始化变量的名称。
  • 您不会将结果分配给任何内容(asbd=)。没有结果。该值进入缓冲区(您正在尝试将其设置为desc)。

  • 所以,我想你想说的(不要让我这么说)是:
    [value getValue:&desc];
    

    10-06 03:01