ios – sysctlbyname error C99中函数“sysctlbyname”的隐式声
发布时间:2020-12-15 01:56:43 所属栏目:百科 来源:网络整理
导读:我收到一个错误“隐式声明函数”sysctlbyname’在C99中无效“当我使用这个代码。我以前使用它,这很好,所以我不知道发生了什么。 我目前正在开发iOS7设备,并使用最新版本的xcode 5在应用商店 UIDeviceHardware.m @interface UIDeviceHardware : NSObject-
我收到一个错误“隐式声明函数”sysctlbyname’在C99中无效“当我使用这个代码。我以前使用它,这很好,所以我不知道发生了什么。
我目前正在开发iOS7设备,并使用最新版本的xcode 5在应用商店 UIDeviceHardware.m @interface UIDeviceHardware : NSObject - (NSString *) platform; - (NSString *) platformString; @end UIDeviceHardware.m - (NSString *) platform{ size_t size; sysctlbyname("hw.machine",NULL,&size,0); char *machine = malloc(size); sysctlbyname("hw.machine",machine,0); NSString *platform = [NSString stringWithUTF8String:machine]; free(machine); return platform; } - (NSString *) platformString{ NSString *platform = [self platform]; if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4 (GSM)"; if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone 4 (CDMA)"; if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (GSM)"; if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)"; if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)"; if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (GSM+CDMA)"; if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)"; if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (GSM+CDMA)"; if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 GSM"; if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6 GSM+CDMA"; if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone 6+ GSM"; if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6+ Global"; if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G"; if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G"; if ([platform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G"; if ([platform isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G"; if ([platform isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G"; if ([platform isEqualToString:@"iPad1,1"]) return @"iPad"; if ([platform isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)"; if ([platform isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)"; if ([platform isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)"; if ([platform isEqualToString:@"iPad2,4"]) return @"iPad 2 (WiFi)"; if ([platform isEqualToString:@"iPad2,5"]) return @"iPad Mini (WiFi)"; if ([platform isEqualToString:@"iPad2,6"]) return @"iPad Mini (GSM)"; if ([platform isEqualToString:@"iPad2,7"]) return @"iPad Mini (GSM+CDMA)"; if ([platform isEqualToString:@"iPad3,1"]) return @"iPad 3 (WiFi)"; if ([platform isEqualToString:@"iPad3,2"]) return @"iPad 3 (GSM+CDMA)"; if ([platform isEqualToString:@"iPad3,3"]) return @"iPad 3 (GSM)"; if ([platform isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)"; if ([platform isEqualToString:@"iPad3,5"]) return @"iPad 4 (GSM)"; if ([platform isEqualToString:@"iPad3,6"]) return @"iPad 4 (GSM+CDMA)"; if ([platform isEqualToString:@"iPad4,1"]) return @"iPad Air (WiFi)"; if ([platform isEqualToString:@"iPad4,2"]) return @"iPad Air (GSM)"; if ([platform isEqualToString:@"iPad4,4"]) return @"iPad Mini Retina (WiFi)"; if ([platform isEqualToString:@"iPad4,5"]) return @"iPad Mini Retina (GSM)"; if ([platform isEqualToString:@"i386"]) return @"Simulator"; if ([platform isEqualToString:@"x86_64"]) return @"Simulator"; return platform; } 解决方法
也许我的答案是微不足道的,但是你是否包括sys / sysctl.h?
#import< sys / sysctl.h> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容