作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以,我主要用 swift 编写,但似乎调用此“AudioServicesPlaySystemSoundWithVibration”的唯一方法是在 Objective-c 中......一开始,我编写的代码确实有效,我不确定发生了什么变化但是它现在给我错误“函数‘AudioServicesPlaySystemSoundWithVibration’的隐式声明在 C99 中无效”,而不仅仅是警告。相同的警告和错误标题,但现在这是一个我无法编译的错误。是的,我知道我使用的是私有(private) API,但我不打算出售该应用程序,所以我不在乎苹果的想法。我只需要自定义振动。这两个函数 vibrateMutate 和 vibrateSection 都在单独的 swift 文件中调用,我将“import vibrate.h”放在我制作 objective-c 文件时被迫创建的桥接 header 中。这是我的代码:)
//vibrate.h FILE NAME
#ifndef vibrate_h
#define vibrate_h
@interface Vibrate : NSObject
+ (void)vibrateMutate;
+ (void)vibrateSectionChange;
@end
#endif /* vibrate_h */
// vibrate.m FILE NAME
#import <Foundation/Foundation.h>
#import <AudioToolbox/AudioServices.h>
#import <AudioToolbox/AudioToolbox.h>
#import "vibrate.h"
@implementation Vibrate
+ (void) vibrateMutate
{
NSMutableDictionary* dict = [NSMutableDictionary dictionary];
NSMutableArray* arr = [NSMutableArray array ];
[arr addObject:[NSNumber numberWithBool:YES]];
[arr addObject:[NSNumber numberWithInt:50]];
[arr addObject:[NSNumber numberWithBool:NO]];
[arr addObject:[NSNumber numberWithInt:10]];
[dict setObject:arr forKey:@"VibePattern"];
[dict setObject:[NSNumber numberWithDouble:.25] forKey:@"Intensity"];
AudioServicesPlaySystemSoundWithVibration(4095,nil,dict); //ERROR
}
+ (void) vibrateSectionChange
{
NSMutableDictionary* dict = [NSMutableDictionary dictionary];
NSMutableArray* arr = [NSMutableArray array ];
[arr addObject:[NSNumber numberWithBool:YES]];
[arr addObject:[NSNumber numberWithInt:150]];
[arr addObject:[NSNumber numberWithBool:NO]];
[arr addObject:[NSNumber numberWithInt:10]];
[dict setObject:arr forKey:@"VibePattern"];
[dict setObject:[NSNumber numberWithDouble:.75] forKey:@"Intensity"];
AudioServicesPlaySystemSoundWithVibration(4095,nil,dict);
}
@end
最佳答案
如果你知道调用是对的,只是想让编译器满意,你可以在你的代码中给出一个明确的定义。我不知道私有(private)函数的正确定义是什么,但如果您不关心精确性,以下内容应该有效。
void AudioServicesPlaySystemSoundWithVibration(int, id, id);
@implementation Vibrate
// ...
关于objective-c - 'AudioServicesPlaySystemSoundWithVibration'函数的隐式声明在C99错误中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34397532/
我是一名优秀的程序员,十分优秀!