我收到以下错误:
"Implicit conversion of Objective-C pointer type. Type "void*" requires a bridged cast.
Run Code Online (Sandbox Code Playgroud)
我已经用桥来修复类似的代码 - 但是这些类型的修复在这里没有帮助.这是代码的一部分:
AURenderCallbackStruct input;
input.inputProc = RenderTone;
input.inputProcRefCon = self;
err = AudioUnitSetProperty(
toneUnit,
kAudioUnitProperty_SetRenderCallback,
kAudioUnitScope_Input,
0,
&input,
sizeof(input));
NSAssert1(err == noErr, @"Error setting callback: %ld", err);
Run Code Online (Sandbox Code Playgroud)
第二个代码位有错误
SStatus result = AudioSessionInitialize(NULL, NULL, ToneInterruptionListener, self);
if (result == kAudioSessionNoError) {
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(
kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory),
&sessionCategory);
}
Run Code Online (Sandbox Code Playgroud)
谢谢,提前获得所有帮助.
更新
问题解决了.桥梁铸造工作不正确.应该是:
input. inputProcRefCon = (__bridge void*)self
Run Code Online (Sandbox Code Playgroud) 目前我正试图找到一种平均矩阵的简洁方法.显而易见的解决方案是对矩阵求和,然后除以元素的数量.但是,我在苹果开发者网站上遇到了一种方法,声称可以使用valueForKeyPath以更简单的方式完成此操作.这与以下内容相关联:
以下是我正在努力尝试使其工作的示例:
-(void)arrayAverager
{
NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:25];
[myArray addObject:[NSNumber numberWithInteger:myValue]];
NSNumber *averageValue = [myArray valueForKeyPath:@"@avg.self"];
NSLog(@"avg = %@", averageValue);
}
Run Code Online (Sandbox Code Playgroud)
的问题是:代替平均它仅通过1打印出阵列1中的元素阵列.
UPDATE
-(void) pixelAverager
{
//Put x-coordinate value of all wanted pixels into an array
NSMutableArray *xCoordinateArray = [NSMutableArray arrayWithCapacity:25];
[xCoordinateArray addObject:[NSNumber numberWithInteger:xCoordinate]];
NSLog(@"avg = %@", [xCoordinateArray valueForKeyPath:@"@avg.intValue"]);
}
Run Code Online (Sandbox Code Playgroud)