2013-10-30 2 views
1

** 누군가이 초기화 유형을 이해하도록 도와 줄 수 있습니까? 그것은 나에게 보인다 코드의이 부분 : 키 NSDictionary에 initializationa 객체와 같은for 루프를 사용하여 아래의 구조를 만들고 채우는 방법은 무엇입니까? ObjectiveC

"username: @"Johny"보기 ** 내 코드 내가 모든 값을 받고 있어요에

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

2012 WWDC에서 Apple이 Objective-C에 몇 가지 변경 사항을 소개했습니다. WWDC 2012 비디오 Modern Objective-C을 본 적이 없다면 소개 된 변경 사항을 설명하는 해당 비디오를보실 것을 적극 권장합니다. 추가 이러한 변경의 사이에 Array Literals와 기본적으로

Dictionary 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 
당신이 리터럴이 명확하고 배열을 생성하는 것이 더 쉽습니다을 사용하여 볼 수

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

:개

배열 상수는 다음과 같은 방법으로 배열을 만들 수 있습니다.사전을 만들 수있는 유사에 대한 NSDictionary 경우 처음에 옵션이 있었다 :

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 }; 
2

새로운 (ish) Objective-C literals syntax을 사용하는 사전 개체 배열입니다.

뿐만 아니라 기존의 문자 그대로 우리 모두가 알다시피 문자열, 사랑 등

: @"Hello World"이있다 :

  • NSArray 리터럴 : @[ element1, element2 ], [NSArray arrayWithObjects:] 않습니다 같은 후행 nil을 필요로하지 않는 장점이 있습니다.
  • NSDictionary 리터럴 : @{ key : value, key : value }이며 [NSDictionary dictionaryWithObjects:forKeys:]과 비교하여 키 - 값 순서에서 더 자연스러운 장점이 있습니다.
  • NSNumber 리터럴 : @(YES) (부울 값), @(1.2) (부동 소수점), @(123) (정수).

이 모두 훨씬 더 간결하고 자연 스럽다는 장점이 있습니다.

0

iOS 6에서 Apple은 NSArray을 초기화하는 새로운 방법을 만들었습니다.

이 함수는 arrayWithObjects 함수와 동일하게 작동하지만 구문이 조금 다릅니다.

NSArrayNSDictionary 개체로 채워집니다.

관련 문제