字符串(NSString)与数值(int,NSInteger)的基本转换 假设有 NSString *tempA = @"123"; NSString *tempB = @"456"; 1....字符转NSInteger NSInteger k = [newString integerValue]; 3....NSInteger转字符 NSString *s = [NSString stringWithFormat:@"%ld",k]; 4....字符转int int intString = [newString intValue]; 5. int转字符 NSString *stringInt = [NSString stringWithFormat...字符转float float floatString = [newString floatValue]; 7. float转字符 NSString *stringFloat = [NSString stringWithFormat
技术背景我们在做RTSP、RTMP直播播放器的时候,有个比较重要的功能,就是拉流端实时录像,包括设置单个录像文件大小、文件前缀、audio转AAC、只录制视频或只录制音频、开始录像、停止录像事件状态回调等...:is_report report_interval:report_interval]; //录像端音频,是否转AAC后保存 NSInteger is_transcode = 1;...param2 param3:(NSString*)param3 param4:(NSString*)param4 pObj:(void *)pObj;{ NSString* player_event...= @""; NSString* lable = @""; .......设置录像时音频转AAC编码的开关 * * aac比较通用,sdk增加其他音频编码(比如speex, pcmu, pcma等)转aac的功能. * * @param is_transcode: 设置为1的话
Tech 导读 通过分析Foundation框架中的KVC部分并结合案例分析KVC原理,解释为什么属性为简单数据类型的时候可以设置其值为字符串类型且不会崩溃的真实原因。...*name; @property (nonatomic, assign) NSInteger age; @end Person *person = [Person new]; person.name...其定义如下:之所以有文章开头提到的效果就是这里起了作用,在IMP调用的时候做了[value valueGetSelectorName],将对应的NSNumber转换为简单数据类型。...goodsName; @property (nonatomic,assign)NSInteger totalAmount; @property (nonatomic,assign)NSInteger rejectAmount...从设计稿出发,提升页面搭建效率,亟需解决的核心问题有: KVC在处理简单数据类型时会经过数据封装和拆装并转换为对应的数据类型。
NSString NSString创建与内存存储 NSString是1个数据类型,用来保存OC字符串,NSString的本质是1个类,既然是1个类,所以,最标准的创建NSString对象的方式如下: NSString...将C语言的字符串转换为OC字符串对象。 + (instancetype)stringWithUTF8String:(NSString *)string; 将OC字符串对象转换为C语言的字符串....原理: 将想要删除的字符替换为@""即可。 字符串数据转换为其他的类型....*uppercaseString; // 转换为大写 @property (readonly, copy) NSString *lowercaseString; // 换换为小写 去掉字符串前后的大写或小写字母...*)stringFromDate:(NSDate *)date; //将日期类型换换为字符串 - (NSDate *)dateFromString:(NSString *)string;//将字符串转换为日期对象
辅助方法 大部分转换方法来自IOS 蓝牙通信各种数据类型之间的转换,使用时按需使用即可。...NSString *hexStr = [NSString stringWithFormat:@"%02lx", (long)number]; 16进制字符串转十进制数字,用于需要进行算术运算的情况,需要先将字符串转为十进制数字...NSInteger num = strtoul(hexStr.UTF8String, 0, 16); 针对算术运算后小于0的数字的特殊处理如下: NSInteger num = num - randNum...; if (num < 0) { // 如果数字小于0,则用256+这个负数,再拿结果去转16进制字符串 num = 256 + num; } NSString *hexStr = [[...参考 iOS蓝牙知识快速入门(详尽版) iOS蓝牙开发CoreBluetooth全面讲解 IOS 蓝牙通信各种数据类型之间的转换 iOS 对两个相等长度的字符串进行异或运算 iOS蓝牙开发中的CRC8校验
select * from A order by cast(name as unsigned);
1.1 基本数据类型 因为Objective-C是在C语言基础上拓展出的新语言,所以它是完全兼容C语言代码的,C语言中的基本数据类型都可以正常使用,直接来自C语言中的数据类型如下所示。...不同的数据类型占用的存储空间不同,同一数据类型在不同编译器环境下占用的存储空间也不一样。...,Objective-C还拓展了一些新的数据类型如BOOL、NSInteger、NSString、CGFloat、id、instancetype等。...OC中的NSInteger就是对整型的一个封装,64-bit系统上NSInteger对应的是长整形,32-bit系统上对应的是整型。...typedef long NSInteger; typedef unsigned long NSUInteger; #else typedef int NSInteger; typedef unsigned
、联系人详情界面、添加联系人界面等 一般用于选择联系人 AddressBook.framework 纯C语言的API,仅仅是获得联系人数据,没有提供UI界面展示,需要自己搭建联系人展示界面,里面的数据类型大部分基于...例子1:从记录中取姓,并转换为NSString类型 CFStringRef lastName = ABRecordCopyValue(person, kABPersonLastNameProperty)...例子2:获取电话号码, 电话返回的是多数据类型(可以获取到标签和电话号等信息) 如:住宅就是标签,下面是电话号 ?...type)(expression) / CFBridgingRelease(expression) : CF框架移交对象的管理权给NSFoundation框架,不需要手动释放对象 前两种是将CF对象转NSFoundation...,最后一个是NSFoundation转 CF对象,不常用 (__bridge_retained )() 其它知识点 1、添加联系人的步骤 通过ABPersonCreate
1.用NSNumberFormatter 关于NSNumberFormatter,请看这里https://www.jianshu.com/p/817029422a72 我们这里只说数字转汉字的实现:...NSLocale alloc] initWithLocaleIdentifier:@"zh_Hans"]; formatter.locale = locale; 2.用算法实现 /** * 将阿拉伯数字转换为中文数字...*/ -(NSString *)translationArabicNum:(NSInteger)arabicNum { NSString *arabicNumStr = [NSString...objectForKey:subStr1]; NSString *chinese1 = [NSString stringWithFormat:@"十%@",a1];...objectForKey:substr]; NSString *b = digits[arabicNumStr.length -i-1]; NSString
中方法的声明如下: void txtOverlay(long ctx, unsigned char* buffer, wchar_t* txt, size_t len, int x, int y); 那么在iOS如何将...NSString字符串转成wchar_t*呢?...方法如下: +(const wchar_t*)stingTowWchar_t:(NSString*)string { return (wchar_t*)[string cStringUsingEncoding...:NSUTF32StringEncoding]; } 如果需要将wchar_t*转成NSString字符串,方法如下: +(NSString*)getStringFromWChar:(const wchar_t...*) inStr { setlocale(LC_CTYPE, "UTF-8"); NSInteger strLength = wcslen(inStr); NSInteger bufferSize
id类型 id数据类型可以存储任何类型的对象。可以说,它是一般对象类型。...比如: @interface NSString : NSObject - (NSUnrelated *)init; // incorrect usage: NSUnrelated is not NSString...or a superclass of NSString @end 关联的返回类型只会影响发送的消息的类型或者通过指定方法访问属性的类型。...编译器不会自动将id转换为instancetype。这个id是一个通用对象。不过你一旦将其改为instancetype,编译器就知道这个方法返回的是一个什么类型的对象。 这并不是一个学术问题。...但是这只是因为编译器会自动地将id转换为instancetype。你若让init 方法返回id类型,编译器还要再解释这个方法好像是要返回instancetype,这样总会显得很奇怪。
//2.是否是邮箱 -(BOOL)isValidateEmail; //3.是否是空字符串 - (BOOL)isNullStr; //4.是否是空对象 -(BOOL)isNull; //5.数字转字符串...+(NSString*) stringFromInteger:(NSInteger)num; //6.密码是否符合彼标准 8-14位字母数组的组合 -(BOOL)isValidatePwd; #...pragma mark - 功能相关 /* 功能相关 */ //1.md5加密 - (NSString *) md5; //2.将字符串的首尾空格去掉 - (NSString *) trim; .m...return YES; } else if (self==nil){ return YES; } return NO; } //5.数字转字符串...+(NSString*) stringFromInteger:(NSInteger)num{ return [NSString stringWithFormat:@"%ld",num]; }
编码的开关aac比较通用,sdk增加其他音频编码(比如speex, pcmu, pcma等)转aac的功能.录制视频SmartPlayerSetRecorderVideo设置是否录视频,默认的话,如果视频源有视频就录...:is_report report_interval:report_interval]; //录像端音频,是否转AAC后保存 NSInteger is_transcode = 1;...param2 param3:(NSString*)param3 param4:(NSString*)param4 pObj:(void *)pObj;{ NSString* player_event...[NSString stringWithFormat:@"%ld", (long)param1]; NSString *str_h = [NSString stringWithFormat...speed_kbps = (NSInteger)param1*8/1000; NSInteger speed_KBs = (NSInteger)param1/1024;
iOS RC4加密 iOS RC4加密的实现,要注意加密后生成字符串的步骤,有些要求是base64加密后输出,有些要求是字节数组转16进制字符串输出,所以要特别注意。...代码如下: // rc4加密 - (NSString *)rc4Encode:(NSString *)aInput key:(NSString *)aKey { NSMutableArray *...} free(kBytes); decipher[cipherLength] = '\0'; return @((char *)decipher); } // 字节数组转...- (NSString *)stringFromByte:(Byte *)byteBuffer length:(NSInteger)length { NSMutableString *hexString...*)targetStr { NSInteger len = [targetStr length] / 2; // Target length unsigned char *buf
description here 修改完的代码: 修改方法有很多种,现给出一种做示例: // .h文件 // 修改完的代码,这是第一种修改方法,后面会给出第二种修改方法 typedef NS_ENUM(NSInteger...建议使用 NS_ENUM 和 NS_OPTIONS 宏来定义枚举类型,参见官方的 Adopting Modern Objective-C 一文: //定义一个枚举 typedef NS_ENUM(NSInteger...age 属性的类型:应避免使用基本类型,建议使用 Foundation 数据类型,对应关系如下: int -> NSInteger unsigned -> NSUInteger float -> CGFloat...: withAge: 应当换为age:,age: 已经足以清晰说明参数的作用,也不建议用 andAge: :通常情况下,即使有类似 withA:withB: 的命名需求,也通常是使用withA:andB...如果是这种情况,那么应该把“性别”(sex)属性设为 readwrite 属性,最终给出的修改代码应该是: // .h文件 // 第二种修改方法(基于第一种修改方法的基础上) typedef NS_ENUM(NSInteger
NSInteger appH = 120; // 定义格子的总数量 NSInteger countOfApps = 80; // 定义一行有几个格子 NSInteger...numberOfCol = 3; // 定义左边距、右边距、顶部间距 NSInteger marginOfLeft = 10; NSInteger marginOfRight...+MVC 8.1 字典转模型的原因 直接通过字典的键名获取plist中的数据信息,需要直接和数据打交道,如果需要多次使用可能会因为不小心把键名写错,而程序并不报错。...如: dict[@"name"] = @"Jack";NSString *name = dict[@"name"];``` ##8.2 字典转模型的流程 !...声明属性 @property (nonatomic, copy) NSString *name;@property (nonatomic, copy) NSString *icon; // 图像,定义属性时
assign 主要用于修饰基本数据类型,如 NSInteger 和 CGFloat ,这些数值主要存在于栈上。 weak 一般用来修饰对象,assign 一般用来修饰基本数据类型。...(^sumOfNumbers)(NSInteger a, NSInteger b) = ^( NSInteger a, NSInteger b) { return a + b; }; 而代理的声明和实现一般分开...因为 NSString 是不可变的数据类型,它有对应的 NSMutableString 的数据类型,用 strong 来修饰会有 NSString 被修改的可能性。...有对应可变数据类型的不可变数据类型都应该修饰为 copy。copy 表示该属性不保留新值,而是将其拷贝。这样一来,属性的封装性就可以得到保护,其对应的值是不会无意间被修改的。...正确的写法如下: @property (nonatomic, copy) NSString *title; @property (nonatomic, assign) NSInteger workID;
他呢,支持的数据格式NSString/NSArray/NSDictionary/NSData/NSURL/NSInteger/float/double/BOOL。...缺点是同样不支持模型等特殊数据类型。 ---- 归解档 相对于前两种方法,归解档这种方法更适应于模型等特殊数据类型的持久化。想要归解档,你的模型首先要遵循协议。...tmp.age); } else { NSLog(@"fail"); } 另外,在实现两个协议方法时,你也可以通过runtime获取属性列表来自动完成转换,但是你要注意的是,想使用runtime自动转的话...归档的优势在于它支持对象的持久化了而不是那几种特殊的数据类型,悲催的是,你仍需要确保你要归档的属性的数据类型是遵循的。...实现思路大概如下: 找出模型中所有需要落库的属性 将需要落库的属性类型转换为数据库支持类型 落库 所以有了大致思路我们就能以梳理出一套方案: runtime 获取所有属性并进行动态转换 这其中还是参考了很多
) BOOL persistent; //此剪切板的改变次数 系统级别的剪切板只有当设备重新启动时 这个值才会清零 @property(readonly,nonatomic) NSInteger changeCount...:(NSString *)pasteboardType; //为剪切板中最新数据对应的某一数据类型设置值 - (void)setValue:(id)value forPasteboardType:(NSString... *)pasteboardType; //为剪切板中最新数据对应的某一数据类型设置数据 - (void)setData:(NSData *)data forPasteboardType:(NSString... *)pasteboardType; 多组数据对象的存取: //数据组数 @property(readonly,nonatomic) NSInteger numberOfItems; //获取一组数据对象包含的数据类型...; //根据数据类型获取一组数据的值 - (nullable NSArray *)valuesForPasteboardType:(NSString *)pasteboardType inItemSet
),没有形参则可以省略冒号 20 - (NSString *)name; 21 - (NSInteger)age; 22 23 //多个参数的方法定义 24 //方法名两部分组成的:setName:...27 //- (void)setName:(NSString *)name :(NSInteger)age; 28 29 //类方法 30 //在这个方法中是无法访问属性的,因为属性是属于对象的,不是类的...} 14 - (NSString *)name{ 15 return _name; 16 } 17 - (NSInteger)age{ 18 return _age;...19 } 20 - (void)setName:(NSString *)name setAge:(NSInteger)age{ 21 _name = name; 22...; 4 } 5 6 //自定义初始化方法,必须以init开头 7 - (id)initWithName:(NSString *)name withAge:(NSInteger)
领取专属 10元无门槛券
手把手带您无忧上云