iOS知识梳理 - Objc语法中值得注意的东西
栏目: Objective-C · 发布时间: 7年前
内容简介:@property、@synthesize和@dynamicobjc推荐我们通过set/get方法访问对象的属性。很显然,为每一个属性手动添加set/get方法的声明和实现是个性价比很低的重复劳动。因此,objc提供了一些关键字帮助我们简化这一过程。这几个关键字实际上就是这么回事儿。单独做了总结:
属性声明
@property、@synthesize和@dynamic
objc推荐我们通过set/get方法访问对象的属性。很显然,为每一个属性手动添加set/get方法的声明和实现是个性价比很低的重复劳动。因此,objc提供了一些关键字帮助我们简化这一过程。这几个关键字实际上就是这么回事儿。
单独做了总结: Objective-C的@property、@synthesize和@dynamic
注释
常规的 //
和 /* */
就不多说了
值得一提的是 #pragma
语法,
我们可以用 #pragma mark - UITableViewDataSource
这样的写法来为代码分块,xcode将会提供导航。
参考: #pragma
enum
typedef NS_ENUM(NSUInteger, TTGState) {
TTGStateOK = 0,
TTGStateError,
TTGStateUnknow
};
参考
Enum in OC
空指针
- NULL:C的空指针 (void *)0
- nil:objc的空对象 (id)0
- Nil:空的类指针 (Class)0
- NSNull:nil的包装类,为了表示dic里面的某个value为空 [NSNull null]
总结:前三个数值上是相等的,在objc中用nil比较普遍
BOOL
常见的就是bool和BOOL。
bool是 c语言 的,单独的一个类型(_Bool),在数值上true = 1,false = 0
bool类型只有true和false两种状态。
另外,条件判断语句在判断时,是以0为false,非0为true进行判断的。
由此有以下结论:
2 == true //假 (bool)2 == true //真 2 //真
BOOL是ObjC定义的真假值类型,它在64位机器上等价于bool,在32位机器上是signed char
其定义如下,参考objc4-750
/// Type to represent a boolean value.
#if defined(__OBJC_BOOL_IS_BOOL)
// Honor __OBJC_BOOL_IS_BOOL when available.
# if __OBJC_BOOL_IS_BOOL
# define OBJC_BOOL_IS_BOOL 1
# else
# define OBJC_BOOL_IS_BOOL 0
# endif
#else
// __OBJC_BOOL_IS_BOOL not set.
# if TARGET_OS_OSX || TARGET_OS_IOSMAC || (TARGET_OS_IOS && !__LP64__ && !__ARM_ARCH_7K)
# define OBJC_BOOL_IS_BOOL 0
# else
# define OBJC_BOOL_IS_BOOL 1
# endif
#endif
#if OBJC_BOOL_IS_BOOL
typedef bool BOOL;
#else
# define OBJC_BOOL_IS_CHAR 1
typedef signed char BOOL;
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C"
// even if -funsigned-char is used.
#endif
YES和NO
bool的表现已经讲过,这里关注一下BOOL作为signed char的表现。
这时,一个BOOL类型的变量值范围是-128~127,因此强制类型转换时可能会有异常:
BOOL boolVar = 256; boolVar //假 boolVar == 0 //真
另外强制类型转换时也不会把值转为0和1:
(BOOL)2 == true //假
综上,使用时需注意:
-
使用条件表达式时不需要跟YES、NO进行比较,如
if(var == YES)应当直接写成if(var)。 - 不要把其它类型强制转换成BOOL
参考:
内存管理
TODO:后面总结梳理。
以上所述就是小编给大家介绍的《iOS知识梳理 - Objc语法中值得注意的东西》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML & CSS设计与构建网站
[美] Jon Duckett / 刘涛、陈学敏 / 清华大学出版社 / 2013-1 / 59.80元
欢迎您选择一种更高效的学习HTML和CSS的方式。不管您设计和建立新网站,还是想更好地控制现有网站,都可以在《HTML & CSS 设计与构建网站》一书的指导下创建出用户友好、令用户赏心悦目的Web内容。我们知道,编码是一项令人望而生畏的工作,而本书却采用有别于许多传统编程书籍的新颖编排方式,将使您收到事半功倍的学习效果。 每一页都在短小精悍的示例代码的引导下,简明直观、直截了当地阐述一个新......一起来看看 《HTML & CSS设计与构建网站》 这本书的介绍吧!