我需要将结构AudioStreamBasicDescription
传递给随机视图控制器。为此,我创建了一个单例类,并且我想将AudioStreamBasicDescription
存储在该单例类中。
当其他视图控制器需要使用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'(又名'struct AudioStreamBasicDescription')参数为不兼容类型void
我将asbd和singletons asbd声明为
AudioStreamBasicDescription asbd; // description of the audio
我该如何解决这个问题?
答案 0 :(得分:2)
问题(我相信你知道)就是这些问题:
AudioStreamBasicDescription desc;
asbd=[value getValue:desc];
这不是你打电话给getValue:
的方式。有两件事是错的:
您需要提供(您所说的desc
)缓冲区的地址,而不是(正如您所做)名称未初始化的变量。
您不会将结果分配给任何内容(asbd=
)。没有结果。该值将进入缓冲区(您尝试将其设置为desc
)。
所以,我认为你想说的话(不要抱我这个)是:
[value getValue:&desc];