iOS typedef NS_ENUM 与 NSString】的更多相关文章

//在头文件中声明 typedef NS_ENUM(NSUInteger, TransactionState) { TransactionOpened, TransactionPending, TransactionClosed, }; extern NSString * NSStringFromTransactionState(TransactionState state); //在.m文件中实现 NSString * NSStringFromTransactionState(Transact…
#define enumToString(value)  @#value eg. typedef NS_ENUM(NSInteger, Sex) { Male = 0, Famale = 1, }; NSString * string =  enumToString(Male); NSLog@(@"string=%@", string); string=Male;…
OC里枚举的两种类型.NS_ENUM和NS_OPTIONS本质上是一样的都是枚举. typedef NS_ENUM(NSInteger, UIViewAnimationTransition) { UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAni…
iOS中,将NSData转NSString的一般方法为[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];但是当data中包含00时,所获得的新字符就会为nil,这时我们应该这样转 [NSString stringWithUTF8String:[data bytes]];…
创建一个字符串对象: NSstring * str1 = @"hello world"; NSString * str = [[NSString alloc]initWithString:@"hello world!"]; NSString * str_1 = [[NSString alloc]initWithUTF8String:"hello world"];//把C的字符串转化为OC的字符串 int a = 123; NSString * s…
一.NSRange 1.NSRange的介绍 NSRange是Foundation框架中比较常用的结构体, 它的定义如下: typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围 NSRange有2个成员 NSUInteger location : 表示该范围的起始位置 NSUInteger length : 表示该…
开始 我  以为 这个 alertView 里面 ...的写法  应该 是一个 普通的数组  然 并没有 分享一篇好文 http://www.tekuba.net/program/290/ IOS实现传递不定长的多个参数的方法是使用va_list.va_list是C语言提供的处理变长参数的一种方法.在调用的时候要在参数结尾的时候加nil.va_list的使用需要注意: (1)首先在函数里定义va_list型的变量,这个变量是指向参数的指针: (2)然后用va_start初始化刚定义的va_lis…
代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字. 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换. 用法一: typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN 是一个函数指针, 函数类型是带两个int 参数, 返回一个int 在分析这种形式的定义的时候可以用下面的方法: 先去掉typedef 和别名, 剩下的就是原变量的类型…
//当 请求网络 或者获取其他返回数据 首先 要做一次判断 数据是否为空 防止程序崩溃 程序崩溃 好比拿刀扎在程序员的心啊- if(为空) { 做提示对话框等操作 } else { 正常执行 } - (BOOL) isBlankString:(NSString *)string {//判断字符串是否为空 方法 if (string == nil || string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]…
使用COPY声明NSSTRING属性 2014/05/29 JACE 发表回复 声明一个NSString属性使用copy要优于使用strong.这同样适用于遵守NSCoding协议的不可变类(immutable class),如NSNumber.NSArray.NSSet等.上面提到的这些类都有一个可变(mutable)的版本.选择使用copy的理由是,NSString属性可能被传入一个NSString实例,也可能是一个NSMutableString实例.当传入了一个NSMutableStrin…
NSString *str1 = @"can you \n speak English"; NSString *str = @"\n"; //在str1这个字符串中搜索\n,推断有没有 if ([str1 rangeOfString:str].location != NSNotFound) { NSLog(@"这个字符串中有\n"); } //rangeOfString 前面的參数是要被搜索的字符串,后面的是要搜索的字符 //NSNotFound…
NSString *str1 = @"can you \n speak English"; NSString *str = @"\n"; //在str1该字符串搜索\n.它的结论是不存在 if ([str1 rangeOfString:str].location != NSNotFound) { NSLog(@"此字符串\n"); } //rangeOfString 在参数的前面是要搜索的字符串.返回搜索字符 //NSNotFound 它表示为一…
//将UTCDate(世界标准时间)转化为当地时区的标准Date(钟表显示的时间) //NSDate *date = [NSDate date]; 2018-03-27 06:54:41 +0000 //转化后:2018-03-27 14:54:41 +0000 -(NSDate *)getLocalDateFromUTCDate:(NSDate *)UTCDate{ NSTimeZone *tz = [NSTimeZone defaultTimeZone]; NSInteger seconds…
最近在做程序的时候,突然发现对于NSString的理解还是存在问题的.因此补充一片blog,希望对刚刚进入OC开发并搞不清楚内存泄露问题的人一点指引. 赋值: NSString * str = @"123";   // 这段代码的含义其实就是附一个常量给str,该部分由系统自动管理,不需要release释放,是会autorelease的. NSString * str = [[NString alloc] initWithString :@"111"]; // 这种…
1. 字符串常量 NSString *s = @"test"; NSLog(@"s:%lx",[s retainCount]); //ffffffffffffffff(即UINT_MAX ( Maximum value an `unsigned int')) 因为"test"为字符串常量,系统不会收回,也不会对其作引用计数,即使我们对s如何retain或release. 2. stringWithFormat NSString *s = [NSS…
根据固定宽度计算字符串高度: NSString *info = @"但是公司的高度是广东省公司的广东省高速度来开个大帅哥多撒谎个爱好就跟他说噶三公司噶是的刚好是我哥如果黑暗如果坏都干撒降低公司及嘎斯进欧冠赛欧结果就赛欧国际韶关:可垃圾费:阿尔加两块:三个身高萨嘎干撒的公司的高度上收到公司的公司都给ID搜狗破is打个屁偶是东莞IP手动皮革是滴哦苹果是滴哦苹果度搜皮为欧公司的漂漂是第三个是干撒噶是的噶虽然刚撒旦个撒公司的公司的高度";; CGFloat textW = CONVER_VAL…
截取 NSString *str1 = @"this is zero"; 1.从第三个字符开始,截取长度为2的字符串.........注:空格算作一个字符 NSString *str2 = [str1 substringWithRange:NSMakeRange(5,2)];//str2 = "is" 2.截取从0位到第n为(第n位不算在内) NSString *str3 = [str1 substringToIndex:4];//str3 = "this…
在iOS开发中经常遇到一些字段和类型的定义,例如配置生产和测试不同环境的参数等,这时候经常用到#define.const以及typedef.那么它们之间有什么区别呢?我们接下来一个一个具体了解下. 一.基本概念 1.1.#define #define并不是定义全局变量,而是宏定义.也就是说并不是真正意义上的定义变量,而是用来做文本替换.当程序开始运行时,编译器会先将代码中的MAX全部替换为100,然后再进行编译.由此可得,#define并不是在编译过程中进行,而是在预编译阶段进行. #defin…
typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending}; 其中,NSOrderedSame 表示比较的两个字符串完全一致, 同时,在这个枚举中,它的值是 0. 字符串比较在程序中很常见,比如: if ([str1 compare:@"some text"] == NSOrderedSame) { // Do somethin…
一般情况下,我们采用C风格的enum关键字可以定义枚举类型. enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAnimationTransitionCurlDown, } UIViewAnimationTransition; //位移操作…
一般情况下,我们采用C风格的enum关键字可以定义枚举类型. enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAnimationTransitionCurlDown, } UIViewAnimationTransition; //位移操作…
1.enum可以声明一般类型和位掩码(bitmasked)类型 例如: enum Test{// 一般枚举 TestA, TestB, TestC, }; enum{// 匿名枚举 TestA, TestB, TestC, }; typedef enum _Test{ // 设置别名      TestA,      TestB,      TestC } Test; 2.NS_ENUM声明一般类型, NS_OPTIONS声明掩码(bitmasked)类型 typedef NS_ENUM(NSI…
今天遇到了 NSString 的 rangeOfString 方法,刚遇到的时候不知道什么作用, 网上找到了一篇文章,介绍得挺简洁,代码如下: NSString *str1 = @"can you \n speak English"; NSString *str = @"\n"; // 在str1这个字符串中搜索\n,判断有没有 if ([str1 rangeOfString:str].location != NSNotFound) { NSLog(@"这…
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一>实现了一个简陋的JSON转Model的库,不过还存在很多问题.下面我会尝试一个个去解决. 2. 存在问题及解决思路 2.1 没有考虑JSON数据并不一定是NSDictionary类型 有时候JSON并不一定是NSDictionary类型,可能是一个字符串,也可能是NSData类型的数据.不过不管是哪种类型,统…
很多应用都会在界面中使用某种列表控件:用户可以选中.删除或重新排列列表中的项目.这些控件其实都是UITableView 对象,可以用来显示一组对象,例如,用户地址薄中的一组人名.项目地址. UITableView 对象虽然只能显示一行数据,但是没有行数限制. 编写新的应用程序 JXHomepwner 应用 创建应用,填写基本信息 UITableViewController UITableView 是视图.我们知道 模型-视图-控制器(Model-View-Controller),他是我们必须遵守…
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用Swift进行iOS开发还是不够的.在这篇文章中将继续介绍一些Swift开发中一些不常关注但是又必备的知识点,以便对Swift有进一步的了解. 访问控制 Swift命名空间 Swift和ObjC互相调用 Swift和ObjC映射关系 Swift调用ObjC ObjC调用Swift 扩展-Swift调用C 反射…
  本文主要对NSOPeration的一些重点属性和方法做出介绍,以便大家可以更好的使用NSOPeration. 1.添加依赖 - (void)addDependency:(NSOperation *)op;   需求:同时下载两张图片,两张图片都下载完了,在合成成一张.这个例子我在iOS多线程之6.GCD的其他用法这篇文章中用过,当时是用GCD的group实现的.这次我们用NSOPeration实现. 代码 // 点击屏幕下载图片 - (void)touchesBegan:(NSSet<UIT…
记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] delegate] window]; CGRect rect=[_myButton convertRect:_myButton.bounds toView:window]; 2.UIImageView 和UILabel 等一些控件,需要加这句才能setCorn _myLabel.layer.mas…
  The official raywenderlich.com Objective-C style guide.   This style guide outlines the coding conventions for raywenderlich.com. Introduction The reason we made this style guide was so that we could keep the code in our books, tutorials, and start…
GCD定时器 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ); dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, , ,queue); dispatch_source_set_timer(timer,dispatch_walltime(NULL, ),); //每秒执行…