IOS Xcode 之 Object-c 常用知识汇总
1. NSString 与 std::string 相互转换
std::string 转 NSString ⤵️
std::string str = "my name is std::string.";
NSString *nsStr = [NSString stringWithCString:str.c_str()
encoding:[NSString defaultCStringEncoding]];
//如果中文乱码,则用下面一句话:
NSString *nsStrL = [NSString stringWithCString:roomid.c_str()
encoding:NSUTF8StringEncoding];
NSString 转 std::string ⤵️
NSString *nsStr = @"my name is NSString.";
std::string str = [nsStr UTF8String];
//const char *cstr = [nsStr UTF8String];
2. NSData 与 UIImage 相互转换
UIImage 转 NSData ⤵️
NSString * filePath = @"文件路径.png";
UIImage * myUIImg = [UIImage imageWithContentsOfFile:filePath];
NSData *myNSData = UIImagePNGRepresentation(myUIImg);
UIImage 转 NSData ⤵️
UUImage *myImage = [UIImage imageWithData:myImageData];
3. IOS 拷贝图片到沙盒路径中
NSString *needPreservePicFilePath = @"需要保存图片的路径.png";
NSArray *FilePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *PicFilePath = [[FilePath objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"/myPic.png"]]; //保存文件的名称
UIImage * myImage = [UIImage imageWithContentsOfFile:needPreservePicFilePath];
NSData * imageData = UIImagePNGRepresentation(myImage);
BOOL result = [imageData writeToFile:PicFilePath atomically:YES]; //保存成功会返回YES
NSLog(@"【 result 】= %@", result?@"result=true":@"result=false");
- int 和 NSInteger、NSInteger 与 NSString
32位下 NSInteger 其实就是 int, 64位下是 long。
32位时直接把 NSInteger 当 int 用就是了,64位时要考虑范围问题。
NSInteger myNSInt = 12;
int myInt = (short)myNSInt;
NSInteger 转化 NSString类型:
NSString * nsString = [NSString stringWithFormat: @"%d", NSInteger];
NSString 转化 NSInteger类型:
NSInteger = [NSString intValue];