iOS常用的公共方法详解

2020-01-18 19:03:31于海丽

需要先引入下头文件:


#import <ifaddrs.h>
#import <arpa/inet.h>

代码:


//获取设备 IP 地址
+ (NSString *)getIPAddress {
 NSString *address = @"error";
 struct ifaddrs *interfaces = NULL;
 struct ifaddrs *temp_addr = NULL;
 int success = 0;
 success = getifaddrs(&interfaces);
 if (success == 0) {
  temp_addr = interfaces;
  while(temp_addr != NULL) {
   if(temp_addr->ifa_addr->sa_family == AF_INET) {
    if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {
     address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
    }
   }
   temp_addr = temp_addr->ifa_next;
  }
 }
 freeifaddrs(interfaces);
 return address;
}

22. 判断字符串中是否含有空格


+ (BOOL)isHaveSpaceInString:(NSString *)string{
 NSRange _range = [string rangeOfString:@" "];
 if (_range.location != NSNotFound) {
  return YES;
 }else {
  return NO;
 }
}

23. 判断字符串中是否含有某个字符串


+ (BOOL)isHaveString:(NSString *)string1 InString:(NSString *)string2{
 NSRange _range = [string2 rangeOfString:string1];
 if (_range.location != NSNotFound) {
  return YES;
 }else {
  return NO;
 }
}

24. 判断字符串中是否含有中文


+ (BOOL)isHaveChineseInString:(NSString *)string{
 for(NSInteger i = 0; i < [string length]; i++){
  int a = [string characterAtIndex:i];
  if (a > 0x4e00 && a < 0x9fff) {
   return YES;
  }
 }
 return NO;
}

25. 判断字符串是否全部为数字


+ (BOOL)isAllNum:(NSString *)string{
 unichar c;
 for (int i=0; i<string.length; i++) {
  c=[string characterAtIndex:i];
  if (!isdigit(c)) {
   return NO;
  }
 }
 return YES;
}

26. 绘制虚线


/*
 ** lineFrame:  虚线的 frame
 ** length:  虚线中短线的宽度
 ** spacing:  虚线中短线之间的间距
 ** color:   虚线中短线的颜色
*/
+ (UIView *)createDashedLineWithFrame:(CGRect)lineFrame
       lineLength:(int)length
       lineSpacing:(int)spacing
       lineColor:(UIColor *)color{
 UIView *dashedLine = [[UIView alloc] initWithFrame:lineFrame];
 dashedLine.backgroundColor = [UIColor clearColor];
 CAShapeLayer *shapeLayer = [CAShapeLayer layer];
 [shapeLayer setBounds:dashedLine.bounds];
 [shapeLayer setPosition:CGPointMake(CGRectGetWidth(dashedLine.frame) / 2, CGRectGetHeight(dashedLine.frame))];
 [shapeLayer setFillColor:[UIColor clearColor].CGColor];
 [shapeLayer setStrokeColor:color.CGColor];
 [shapeLayer setLineWidth:CGRectGetHeight(dashedLine.frame)];
 [shapeLayer setLineJoin:kCALineJoinRound];
 [shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber numberWithInt:length], [NSNumber numberWithInt:spacing], nil]];
 CGMutablePathRef path = CGPathCreateMutable();
 CGPathMoveToPoint(path, NULL, 0, 0);
 CGPathAddLineToPoint(path, NULL, CGRectGetWidth(dashedLine.frame), 0);
 [shapeLayer setPath:path];
 CGPathRelease(path);
 [dashedLine.layer addSublayer:shapeLayer];
 return dashedLine;
}