Object-oc之字面量

转载 2015年11月17日 22:18:25

使用oc时,经常会用到NSString,NSNumber,NSArray,NSDictionary,下面是关于他们的字面量语法的使用。

(1)字面数值

   有时需要把整数,浮点数,布尔值封入oc对象中

      一般写法:

    NSNumber *num = [NSNumber numberWithInt:1];

    使用字面量语法:

    NSNumber *num = @1;

   其他类型使用字面量语法:

   NSNumber *intNumber=@2;

   NSNumber *floatNumber=@2.5f;

   NSNumber *doubleNumber=@3.141592;

   NSNumber *boolNumber=@YES;

   NSNumber *charNumber=@‘a‘;

   字面量也适用于以下表达式:

   int x=5;

   float y =6.15f;

   NSNumber *z=@(x*y);

   (2)字面量数组

   一般写法:

   NSArray *animals=[NSArray arrayWithObject:@"cat",@"dog",@"mouse",nil];

   使用字面量语法:

   NSArray *animals=@[@"cat",@"dog",@"mouse"];

   数组的操作

   一般写法:

   NSString *dog=[animals objectAtIndex:1];

   使用字面量:

   NSString *dog=animals[1];

   (3)字面量字典

   一般写法:

  NSDictionary *personData=[NSDictionarydictionaryWithObjectsAndKeys:@"Matt",@"firstName",@"Galloway",@"lastName",[NSNumber numberWithInt:28],@"age",nil];

  使用字面量:

  NSDictionary *personData=@{@"firstName":@"Matt",@"lastName":@"Galloway",@"age":@28};

  字典的操作

  一般写法:

  NSString *lastName=[personData objectForKey:@"lastName"];

  使用字面量:

  NSString *lastName=personData[@"lastName"];

(4)可变数组与字典

  通过取下标操作,可以访问数组中某个下标或字典中某个键所对应的元素。如果数组与字典对象是可变的,那么也能通过下标修改其中的元素值。

 一般写法:

[mutableArray replaceObjectAtIndex:1 withObject:@"dog"];

[mutableDictionary setObject:@"Galloway" forKey:@"lastName"];

使用字面量:

mutableArray[1]=@"dog";

mutableDictionary[@"lastName"]=@"Galloway";




未使用字面量 

使用字面量 

NSString *greeting = [NSString stringWithUTF8String:"Hello  World"]; NSString   *greeting = @"Hello World";
NSNumber *number; NSNumber  *number;
number = [NSNumber numberWithChar:'X']; number  = @'X';
number = [NSNumber numberWithInt:12345]; number  = @12345;
number = [NSNumber numberWithUnsignedLong:12345ul]; number  = @12345ul;
number = [NSNumber numberWithLongLong:12345ll]; number  = @12345ll;
number = [NSNumber numberWithFloat:123.45f]; number  = @123.45f;
number = [NSNumber numberWithDouble:123.45]; number  = @123.45;
number = [NSNumber numberWithBool:YES]; number  = @YES;
[NSNumber numberWithint:6 + x * 2012] @(6+x*2012)
NSNumber *piOverSixteen = [NSNumber numberWithDouble: (M_PI /  16)]; NSNumber  *piOverSixteen = @( M_PI / 16 );
NSNumber *hexDigit = [NSNumber  numberWithChar:"0123456789ABCDEF"[i % 16]];NSNumber *hexDigit = @(  "0123456789ABCDEF"[i % 16] ); NSNumber  *hexDigit = @( "0123456789ABCDEF"[i % 16] );
NSNumber *usesScreenFonts = [NSNumber  numberWithBool:[NSLayoutManager usesScreenFonts]]; NSNumber  *usesScreenFonts = @( [NSLayoutManager usesScreenFonts] );
NSNumber *writingDirection = [NSNumber  numberWithInt:NSWritingDirectionLeftToRight]; NSNumber  *writingDirection = @( NSWritingDirectionLeftToRight );
NSNumber *path = [NSString stringWithUTF8String:  getenv("PATH")]; NSNumber  *path = @( getenv("PATH") );
array = [NSArray arrayWithObjects:a, b, c, nil]; array  = @[ a, b, c ];
[array objectAtIndex:1] array[1]
dict = [NSDictionary dictionaryWithObjects:@[o1, o2, o3]   forKeys:@[k1, k2, k3]]; dict  = @{ k1 : o1, k2 : o2, k3 : o3 };
[NSDictionary dictionaryWithObjectsAndKeys: v1, k1, v2, k2,  nil]; @{k1:v1,  k2:v2}
[dictionary valueForKey:k] dictionary[k]

相关文章推荐

oc 字面量语法

//少用这种方式 NSNumber *someNumber0 = [NSNumber numberWithInt:1]; //多用字面数值 NSString *someStrin...

JavaScript 对象字面量(object literal)

什么是字面量 用来为变量赋值时的常数量 对象字面量 对象字面值是封闭在花括号对({})中的一个对象的零个或多个”属性名:值”列表。var person={ name:"Jack", ...

JavaScript构造函数及原型对象 使用Object或对象字面量创建对象 工厂模式创建对象 构造函数模式创建对象 原型模式创建对象 构造与原型混合模式创建对象

JavaScript构造函数及原型对象 使用Object或对象字面量创建对象 工厂模式创建对象 构造函数模式创建对象 原型模式创建对象 构造与原型混合模式创建对象...

Effective OC 笔记 3多用字面量语法

在写Objective-C程序的时候经常会用到这几个类,NSNumber、NSString、NSArray、NSDictonary。它们都属于Foundation框架,从类名可知道各自类的用处。 OC...

Swift教程:Swift基础 数值型字面量

  • 2015年09月11日 16:11
  • 68.44MB
  • 下载

javascript字面量

在编程语言中,字面量是一种表示值的记法。例如,"Hello, World!" 在许多语言中都表示一个字符串字面量(string literal ),JavaScript也不例外。以下也是JavaScr...

源码-JavaScript&jQuery交互式前端开发-第3章-函数、方法与对象-使用字面量语法创建对象

示例效果: JS代码: // Set up the object var hotel = { name : 'Quay', rooms : 40, booked : 25, c...

Objective-C 中的字面量语法

前言:自己总结的一些关于OC中点面量语法的东东!有不对的地方希望大神们能指出来改正。点面量语法是自Objective-C 1.0推出的能够以很简单方式创建数据对象的语法。 例如:下面快速简便创建的NS...

匿名函数和字面量——JS学习

这两天在学习JS,学习到了匿名函数,和以前见过的函数的定义有很多不同,所以写此文章来探讨一下。 一、匿名函数         说道匿名函数,其实就是没有函数名的函数,通常只需要带一个()就可以...
  • tr1912
  • tr1912
  • 2016年05月14日 20:37
  • 580

【IOS沉思录】Objective-C中的糖衣语法(字面量)

糖衣语法的定义糖衣语法,又叫‘语法糖’、‘语法盐’等等,是由英国计算机科学家彼得·约翰·兰达(Peter J.Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响...
  • cordova
  • cordova
  • 2016年11月03日 15:36
  • 1156
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Object-oc之字面量
举报原因:
原因补充:

(最多只允许输入30个字)