**有人可以帮我理解这种初始化吗?在我看来,这部分代码:
"username: @"Johny"
看起来像nsdictionary initializationa对象的密钥?**
NSArray *items = @[@{@"username": @"Johny",
@"userpic": @"Photo.png",
@"image": @"photo1.jpg"},
@{@"username": @"George",
@"userpic": @"Photo.png",
@"image": @"photo2.jpg"},
@{@"username": @"Mandy",
@"userpic": @"Photo.png",
@"image": @"photo3.jpg"},
@{@"username": @"Jacob",
@"userpic": @"Photo.png",
@"image": @"photo4.jpg"},
@{@"username": @"Brandon",
@"userpic": @"Photo.png",
@"image": @"photo5.jpg"},
@{@"username": @"Dave",
@"userpic": @"Photo.png",
@"image": @"photo6.jpg"}
];
* 在我的代码中我通过使用for循环获取所有值 *
for (NSDictionary *dictionary in items) {
{
//
}
答案 0 :(得分:2)
这是一个使用new(ish)Objective-C literals syntax的字典对象数组。
除了我们都知道和喜爱的传统文字字符串:@"Hello World"
,还有:
NSArray
文字:@[ element1, element2 ]
,其优点是不需要跟nil
一样[NSArray arrayWithObjects:]
。NSDictionary
文字:@{ key : value, key : value }
,与[NSDictionary dictionaryWithObjects:forKeys:]
相比,其优势在于键值顺序更自然。NSNumber
文字:@(YES)
(布尔值),@(1.2)
(浮点),@(123)
(整数)。并且它们都具有更简洁和自然的优点。
答案 1 :(得分:0)
在iOS 6中,Apple创建了一种初始化NSArray
的新方法,这就是这里的情况。
它的功能与arrayWithObjects
函数类似,只是语法略有不同。
您的NSArray
已填充NSDictionary
个对象。
答案 2 :(得分:0)
Apple在2012 WWDC上对Objective-C进行了一些更改。如果您还没有看过WWDC 2012视频Modern Objective-C
,那么我强烈建议您查看解释所引入更改的视频。其中添加的更改包括Array Literals
和Dictionary Literals
基本上就像您可以通过创建以下内容来创建String Literal
:
NSString *name = @"Slim Shady"
Apple也介绍了Array Literals
和Dictionary Literals
以下示例来自视频
最初创建数组的选项是:
NSArray *myArray;
myArray = [NSArray array]; // an empty Array
myArray = [NSArray arrayWithObject:anObject]; // an array with a single object
myArray = [NSArray arrayWithObjects: a, b, n, nil]; // array with 3 objects a, b, c
Array Literals允许您通过以下方式创建数组:
myArray = @[ ]; // an empty Array
myArray = @[anObject]; // array with a single object
myArray = @[a, b, c]; // array with 3 objects a, b, c
正如您所看到的,使用Literals可以更清晰,更轻松地创建数组。同样适用于NSDictionary
最初创建字典的选项是:
NSDictionary *myDict;
myDict = [NSDictionary dictionary]; // empty Dcitionary
myDict = [NSDictionary dictionaryWithObject:object forKey:key];
myDict = [NSDictionary dictionaryWithObjectsAndKeys: object1, key1, object2, key2, nil];
Dictionary Literals允许您通过以下方式创建字典:
myDict = @{ }; // empty ditionary
myDict = @{ key:object }; // notice the order of the key first -> key : object
myDict = @{ key1:object1 , key2:object2 };