百分号的转换,NSString中需要格式化的字符串中百分号使用%%表示,而char*中百分号也是使用%%表示。
例如:NSLog(@"%%%@%%",@"hello"),控制台会打印出%hello%。
//获取IP地址 #import <Foundation/Foundation.h> #import <stdio.h> #import <stdlib.h> #import <math.h> #import <string.h> #import <unistd.h> #import <sys/ioctl.h> #import <sys/types.h> #import <sys/sysctl.h> #import <sys/socket.h> #import <netinet/in.h> #import <netdb.h> #import <arpa/inet.h> #import <sys/sockio.h> #import <net/if.h> #import <net/ethernet.h> #import <errno.h> #import <net/if_dl.h> #import <ifaddrs.h> #import <mach/machine.h> + (NSString *)getIPAddress; // 获取IP + (NSString *)getIPAddress { NSString *address = @"error"; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; // retrieve the current interfaces - returns 0 on success success = getifaddrs(&interfaces); if (success == 0) { // Loop through linked list of interfaces temp_addr = interfaces; while(temp_addr != NULL) { if(temp_addr->ifa_addr->sa_family == AF_INET) { // Check if interface is en0 which is the wifi connection on the iPhone if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { // Get NSString from C String address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; } } temp_addr = temp_addr->ifa_next; } } // Free memory freeifaddrs(interfaces); return address; }
//获取当前WIFI名 #import <SystemConfiguration/CaptiveNetwork.h> + (NSString *)getWifiName; // + (NSString *)getWifiName { NSString *wifiName = nil; CFArrayRef wifiInterfaces = CNCopySupportedInterfaces(); if (!wifiInterfaces) { return nil; } NSArray *interfaces = (__bridge NSArray *)wifiInterfaces; for (NSString *interfaceName in interfaces) { CFDictionaryRef dictRef = CNCopyCurrentNetworkInfo((__bridge CFStringRef)(interfaceName)); if (dictRef) { NSDictionary *networkInfo = (__bridge NSDictionary *)dictRef; NSLog(@"network info -> %@", networkInfo); wifiName = [networkInfo objectForKey:(__bridge NSString *)kCNNetworkInfoKeySSID]; CFRelease(dictRef); } } CFRelease(wifiInterfaces); return wifiName; }
ARC下使用MRC文件 标记编译文件.m -fno-objc-arc
反之 标记文件 -fobjc-arc