枚举宏(Adopting Modern Objective-C)

使用NS_ENUM 和 NS_OPTIONS宏定义枚举。Adopting Modern Objective-C

使用NS_ENUM宏定义一组互斥的枚举值:

typedef NS_ENUM(NSInteger, UITableViewCellStyle) {
        UITableViewCellStyleDefault,
        UITableViewCellStyleValue1,
        UITableViewCellStyleValue2,
        UITableViewCellStyleSubtitle
};//类型名:UITableViewCellStyle  

使用NS_OPTIONS定义一个可以组合的值:

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
  UIViewAutoresizingNone         = 0,
  UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
  UIViewAutoresizingFlexibleWidth    = 1 << 1,
  UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
  UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
  UIViewAutoresizingFlexibleHeight       = 1 << 4,
  UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
时间: 2025-01-04 06:28:55

枚举宏(Adopting Modern Objective-C)的相关文章

Adopting Modern Objective-C

Change id to instancetype in appropriate places Change enum to NS_ENUM or NS_OPTIONS The NS_ENUM macro helps define both the name and type of the enumeration, in this case named UITableViewCellStyle of type NSInteger. The type for enumerations should

Adopting Modern Objective-C 译文

这些年来,Objective-C在不断的发展和进化.尽管最核心的概念和实践都是一直未变的,它还是在很多方面发生了巨大的改变,并取得了巨大的进步.这些改变提高了诸如类型安全,内存管理,性能等方方面面的特性,让编写Objective-C变得更加容易.为了让你现在和未来的代码变得更加健壮,可靠和更加有弹性,适应这些改变将是十分重要的事情. Xcode为你准备了一个适应这些结构化改变的工具.但是在你使用它之前,你会想这些改变会对你的代码做什么改变,并且为什么做这些改变.这篇文档重点讲述了要发生在你的代码

iOS开发——面试篇&amp;面试总结(二)

面试总结(二) 1. 风格纠错题 修改方法有很多种,现给出一种做示例: 下面对具体修改的地方,分两部分做下介绍:硬伤部分和优化部分 .因为硬伤部分没什么技术含量,为了节省大家时间,放在后面讲,大神请直接看优化部分. 优化部分 1)enum建议使用 NS_ENUM 和 NS_OPTIONS 宏来定义枚举类型,参见官方的 Adopting Modern Objective-C 一文: 1 2 3 4 5 //定义一个枚举 typedef NS_ENUM(NSInteger, CYLSex) {   

iOS开发-面试总结(十二)

1. 风格纠错题 修改方法有很多种,现给出一种做示例: 下面对具体修改的地方,分两部分做下介绍:硬伤部分和优化部分 .因为硬伤部分没什么技术含量,为了节省大家时间,放在后面讲,大神请直接看优化部分. 优化部分 1)enum建议使用 NS_ENUM 和 NS_OPTIONS 宏来定义枚举类型,参见官方的 Adopting Modern Objective-C 一文: 1 2 3 4 5 //定义一个枚举 typedef NS_ENUM(NSInteger, CYLSex) {     CYLSex

iOS进阶面试题

1. 风格纠错题 修改完的代码: 修改方法有很多种,现给出一种做示例: // .h文件 // http://weibo.com/luohanchenyilong/ // https://github.com/ChenYilong // 修改完的代码,这是第一种修改方法,后面会给出第二种修改方法 typedef NS_ENUM(NSInteger, CYLSex) { CYLSexMan, CYLSexWoman }; @interface CYLUser : NSObject<NSCopying

IOS升级之 Objective-c新特性

采用现代objective - c 来源:http://www.cnblogs.com/chensheng12330/p/3950004.html 多年来,objective - c语言已经发展和演变. 虽然核心概念和实践保持不变,部分语言经历了重大的变化和改进. 这些现代化提高类型安全.内存管理.性能.和其他方面的objective - c,使你更容易编写正确的代码. 采用这些变化是很重要的在你的现有的和未来的代码来帮助它变得更加一致的,可读的,有弹性. Xcode提供了一个工具来帮助使你的一

iOS面试题整理(上) 仔细研读受益匪浅

1. 风格纠错题 修改完的代码: 修改方法有很多种,现给出一种做示例: // .h文件 // http://weibo.com/luohanchenyilong/ // https://github.com/ChenYilong // 修改完的代码,这是第一种修改方法,后面会给出第二种修改方法 typedef NS_ENUM(NSInteger, CYLSex) { CYLSexMan, CYLSexWoman }; @interface CYLUser : NSObject<NSCopying

NS_ENUM 和 NS_OPTIONS的区别

在苹果的一篇官方文档<Adopting Modern Objective-C>"适应现代的Objectice-c"中提及到使用NS_ENUM和NS_OPTIONS来声明枚举 NS_ENUM用来声明基于一般整形的枚举,而NS_OPTIONS一般用来声明基于位掩码的声明(bitmask) 在一般的教程书中也经常提及,但是其中的区别是什么呢? 在NSObjCRuntime.h中有如下的宏定义 [cpp] view plain copy #define NS_ENUM(_type,

Objective-C开发编码规范【转载】

概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guidelines for Cocoa Google Objective-C Style Guide 本文主要整合了对上述文档的翻译.作者自己的编程经验和其他的相关资料,为公司总结出一份通用的编码规范. 代码格式 使用空格而不是制表符Tab 不要在工程里使用Tab键,使用空格来进行缩进.在Xcode > P