我需要将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];