Foundation中工具类方法

  一、NSNumber

     NSArray和NSDictionary都不能存储数字类型的数字  只能存储对象类型的数据  所以便有了NSNumber

+ (NSNumber *)numberWithChar:(char)value;

+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value;

+ (NSNumber *)numberWithShort:(short)value;

+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value;

+ (NSNumber *)numberWithInt:(int)value;

+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value;

+ (NSNumber *)numberWithLong:(long)value;

+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value;

+ (NSNumber *)numberWithLongLong:(long long)value;

+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value;

+ (NSNumber *)numberWithFloat:(float)value;

+ (NSNumber *)numberWithDouble:(double)value;

+ (NSNumber *)numberWithBool:(BOOL)value;

+ (NSNumber *)numberWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0);

+ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);

  此上都是一个些普通的数据类型如何转换 相信大家都应该能看明白 在这我就不一一介绍了

    

  二、NSValue

    NSNumber是NSValue的子类 NSNumber只能存入数据类型的东西;NSValue是可以放任意类型的;比如:结构体等

存入

  + (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type;

  实例:

    // valueWithBytes: 接收一个指针, 需要传递需要包装的结构体的变量的地址

  // objCType: 需要传递需要包装的数据类型      @encode    Person 在这里的为结构体

    NSValue *pValue = [NSValue valueWithBytes:&p objCType:@encode(Person)];

读取

  

  - (void)getValue:(void *)value;               //注意  传入的是一个指针

  实例

Person res;

[pValue getValue:&res];

  三、NSDate

     1、NSDate创建

  NSDate *now = [NSDate date];

- (instancetype)dateByAddingTimeInterval:(NSTimeInterval)ti NS_AVAILABLE(10_6, 2_0);

  NSDate *date = [now dateByAddingTimeInterval:10];   //追加10秒

+ (NSTimeZone *)systemTimeZone;               //系统时间

+ (NSTimeZone *)localTimeZone;                //本地时间

     2、时间格式化  NSDate --> NSString

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];// 创建一个时间格式化对象

formatter.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒 Z";

    // 告诉时间格式化对象, 按照什么样的格式来格式化时间

NSString *res = [formatter stringFromDate:now];

NSLog(@"res = %@", res);    //如果此刻输出那么就是   多少年多少分多少日。。。。。

     3、NSString --> NSDate

NSString *str = @"2015-06-29 07:05:26 +0000";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 注意: 如果是从NSString格式化为NSDate, 那么dateFormat的格式, 必须和字符串中的时间格式一致, 否则可能转换失败
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";
NSDate *date = [formatter dateFromString:str];

NSLog(@"%@", date);

  四、NSCalendar

NSCalendar *calendar1 = [NSCalendar currentCalendar]; //这是一个单例不管怎么创建都只有一个

有些地方因为东西实在太多  就截图了谅解   ??????

  五、NSFileManager

NSFileManager *manager = [NSFileManager defaultManager];  //创建NSFileManager

1.判断一个文件或者文件夹是否存在

BOOL flag = [manager fileExistsAtPath:@"/Users/username/Desktop/video/AV.mp4"];

2.判断一个文件是否存在, 并且判断它是否是一个文件夹

// 注意: 该方法的返回值是说明传入的路径对应的文件或文件夹是否存在

// 第二个参数是用于保存判断结果的, 如果是一个目录, 那么就会赋值为YES, 如果不是就赋值为NO

BOOL dir = NO;

BOOL flag = [manager fileExistsAtPath:@"/Users/username/Desktop/video/AV.mp4"  isDirectory:&dir];

  3.获取文件或文件夹的属性

NSDictionary *info = [manager attributesOfItemAtPath:@"/Users/username/Desktop/video/AV.mp4" error:nil];

4.获取文件夹中所有的文件

  //只能得到所有文件而不能得到文件夹

NSArray *res = [manager contentsOfDirectoryAtPath:@"/Users/username/Desktop/video" error:nil];

  //能得到所有文件以及文件夹中的文件

NSArray *res = [manager subpathsOfDirectoryAtPath:@"/Users/username/Desktop/video" error:nil];

  5.创建文件夹

   // createDirectoryAtPath: 告诉系统文件夹需要创建到什么位置

// withIntermediateDirectories: 如果指定的文件中有一些文件夹不存在, 是否自动创建不存在的文件夹

// attributes: 指定创建出来的文件夹的属性
      // error: 是否创建成功, 如果失败会给传入的参数赋值
      // 注意: 该方法只能用于创建文件夹, 不能用于创建文件

BOOL flag = [manager createDirectoryAtPath:@"/Users/username/Desktop/abc/video" withIntermediateDirectories:YES attributes:nil error:nil];

  6.创建文件

  // createFileAtPath: 指定文件创建出来的位置
   // contents : 文件中的内容

// attributes: 创建出来的文件的属性

// NSData : 二进制数据
     // 注意: 该方法只能用于创建文件, 不能用于创建文件夹

NSString *str = @"LitterL真帅";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

[manager createFileAtPath:@"/Users/username/Desktop/abc.txt" contents:data attributes:nil];

时间: 2024-08-02 02:51:19

Foundation中工具类方法的相关文章

创建Jmeter中使用的jar包中的工具类方法

1. 在IDEA中新建一个maven工程. 2. 编写工具类方法,如加密算法.此处以加法为例. package DemoTest; public class DemoClass{ public int add(int a, int b){ return a+b; } } 3. 在maven中配置将依赖包打包至某固定位置. <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</grou

ios开发总结:Utils常用方法等收集,添加扩展类,工具类方法,拥有很多方便快捷功能(不断更新中。。。)

BOBUtils 工具大全 本人github开源和收集功能地址:https://github.com/niexiaobo [对ios新手或者工作一年以内开发人员很有用处] 常用方法等收集.添加扩展类.工具类方法.请求方法封装(包括图片上传等)等等 拥有很多方便快捷功能 ^_^ 用法: 只需要导入BOBsKit.h 头文件就行 // #import "BOBsKit.h" 依赖三方库: pod 'SDWebImage', '~> 3.7.5' pod 'MBProgressHUD'

OC基础--OC中的类方法和对象方法

PS:个人感觉跟C#的静态方法和非静态方法有点类似,仅仅是有点类似.明杰老师说过不要总跟之前学过的语言做比较,但是个人觉得,比较一下可以加深印象吧.重点是自己真的能够区分开! 一.OC中的对象方法 1.以减号“-”开头 2.只能让对象调用,没有对象,这个方法根本不可能被执行 3.对象方法能访问实例变量(也就是成员变量) 二.OC中的类方法 1.以加号“+”开头 2.只能用类名调用,对象不能调用 3.类方法中不能访问实例变量(也就是成员变量) 4.适用场合:当不需要访问成员变量的时候,尽量用类方法

python之--工具类方法

python常用的方法一般都是内置函数,或者继承自object的方法,之所以说是工具类方法,只是我自己觉有时候遇到一些问题,有些方法可以像工具一样查看某些特定的信息,比较好用,所以自己总结了一些方法,经代表我自己的观点,有兴趣的朋友看-看,一起交流下,以后新发现的都会写在这里' 1,id()   查看一个对象的内存地址,一般用于分析两个对象是不是一个东西' a=[1,2,3,4] b={"a":12,"b":2} print(id(a)) print(id(b))

解决Qt中QTableWidget类方法setItem 时导致程序崩溃问题

在为一个音乐播放器增加功能时莫明奇妙的出现程序崩溃,定位到是由于QTableWidget 的setItem方法导致的,最终在此处找到了解决方式. 大致是说不能在setItem之前连接cellChanged 信号,把连接cellChanged信号的语句放置在一连串的setItem(在表格插入一行后调用的)之后就可以了. 解决Qt中QTableWidget类方法setItem 时导致程序崩溃问题

Swift中UIView类方法(animateWithDuration)的使用

需求:利用Swift语言实现OC语言中UIView类方法 [UIView animateWithDuration:0.5 animations:^{ bgView.alpha= 1; }]; 在Swift语言对应的方法为: class func animateWithDuration(duration: NSTimeInterval, animations: (() -> Void)!)  需要传入的参数有两个:1.duration:动画持续的时间(秒计)2.传入一个方法名(闭包,类似于函数指针

【转】java中Thread类方法介绍

原文: java中Thread类方法介绍 http://blog.csdn.net/seapeak007/article/details/53395609 这篇文章找时间分析一下!!!:http://blog.csdn.net/apei830/article/details/4503112 --------------------------------------------------------------- 方法摘要 static int activeCount()          

python进阶三(面向对象编程基础)【3-4 python中定义类方法】

python中定义类方法 和属性类似,方法也分实例方法和类方法. 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身. 要在class中定义类方法,需要这么写: 1 class Person(object): 2 count = 0 3 @classmethod 4 def how_many(cls): 5 return cls.count 6 def __init__(self, name): 7 self.name = name 8 Person.count = P

Objective-C中,类方法的getter和setter可以用点运算符吗?

Objective-C中,对象实例property的getter和setter可以使用点运算符来操作,那么类方法的getter和setter可以使用点运算吗? 答案是肯定的. 看如下代码: #import <Foundation/Foundation.h> static int i = 0; @interface X : NSObject + (int)i; + (void)setI:(int)ii; @end @implementation X + (int)i { return i; }