1

** 有人可以帮我理解这种类型的初始化吗?在我看来,这部分代码:

"username: @"Johny"看起来像键的 nsdictionary 初始化对象?**

 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) {
{
    //

}
4

3 回答 3

2

它是使用新的(ish) Objective-C 文字语法的字典对象数组。

除了我们都知道和喜爱的传统文字字符串之外,@"Hello World"还有:

  • NSArrayliterals: @[ element1, element2 ],它的优点是不需要nil尾随[NSArray arrayWithObjects:]
  • NSDictionaryliterals: @{ key : value, key : value },与[NSDictionary dictionaryWithObjects:forKeys:].
  • NSNumber文字:(@(YES)布尔),@(1.2)(浮点),@(123)(整数)。

它们都具有更加简洁自然的优点。

于 2013-10-30T11:52:09.537 回答
0

在 iOS 6 中,Apple 创建了一种新的初始化方式,NSArray这就是这里的情况。

它的功能就像arrayWithObjects函数一样,只是语法有点不同。

NSArray充满了NSDictionary物体。

于 2013-10-30T11:57:43.333 回答
0

Apple 在 2012 年 WWDC 上对 Objective-C 进行了一些更改。如果您还没有看过 WWDC 2012 视频Modern Objective-C,那么我强烈建议您观看该视频,该视频解释了引入的更改。在添加的这些更改中,包括Array LiteralsDictionary Literals

基本上就像您可以String Literal通过创建以下内容来创建一个:

NSString *name = @"Slim Shady"

苹果也介绍Array LiteralsDictionary 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 允许您通过以下方式创建 Array:

myArray = @[ ];   // an empty Array
myArray = @[anObject];  // array with a single object
myArray = @[a, b, c];  // array with 3 objects a, b, c 

如您所见,使用 Literals 可以更清晰、更轻松地创建数组。同样,对于NSDictionary Where 最初创建字典的选项是:

NSDictionary *myDict; 
myDict = [NSDictionary dictionary]; // empty Dcitionary
myDict = [NSDictionary dictionaryWithObject:object forKey:key]; 
myDict = [NSDictionary dictionaryWithObjectsAndKeys: object1, key1, object2, key2, nil];

字典文字允许您通过以下方式创建字典:

myDict = @{ }; // empty ditionary
myDict = @{ key:object }; // notice the order of the key first -> key : object
myDict = @{ key1:object1 , key2:object2 }; 
于 2013-10-30T12:32:05.820 回答