2013-06-21 2 views
0

두 개의 NSObject가 있습니다. NSObject에 저장하고 NSObject에서 읽는 방법

@interface Model : NSObject{ 
    @property (strong) UIImage *picture; 
    @property (strong) NSString *name; 
} 

@interface Car : NSObject{ 
    @property (strong) NSSet *cars; 
} 

는 기본적으로 개체 자동차는 NSSet 차를 가지고 있으며, NSSet 자동차의 각 개체는 속성 사진과 이름이 있습니다.

이 두 NSObject를 어떻게 관련시킬 수 있으며 모델 NSObject의 속성을 사용하여 NS NSpec에 문자열이나 이미지를 저장하는 방법은 무엇입니까? 감사.

답변

0

쉽게 추가하거나 제거하려면 "cars"속성을 NSMutableSet으로 선언해야합니다.

Model * newModel = [[Model alloc] init]; 
if(newModel) 
{ 
    newModel.picture = [UIImage imageNamed: @"Edsel.jpg"]; 
    newModel.name = @"Ugly Car"; 

    [listOfCars.cars addObject: newModel]; 
} 

를 그리고, 당신의 자동차하는 .m 파일에서 수행

그리고 당신의 단일 Car 객체 가정은 " listOfCars"라는, 여기 당신이 할하려는 (내가 생각하는) 일을 할 수있는 하나의 방법입니다 이런 일이 :

- (id) init 
{ 
    self = [super init]; 
    if(self) 
    { 
     _cars = [[NSMutableSet alloc] init]; 
    } 
    return(self); 
} 

init 메소드를 사용하면 "cars"속성에 대한 기본 변수를 참조해야 장소입니다. 자동차 오브젝트 내에서 설정된 자동차를 말하는 경우 다른 곳에서는 "listOfCars.cars"또는 "self.cars"이어야합니다.

+0

아아는 실제로 추한 차입니다! 나는 이것이 작동한다고 생각하지만 listOfCars.cars의 내용을 확인하는 것만으로는 보이지 않는다. 나는'NSLog (@ "% @", listOfCars.cars)를 시도하고 있는데, " – user1698475

+0

", "cars'"세트는 alloc'd해야합니다. 코드를 수정했습니다. –

+0

나는 이미 mutableSet의 alloc을 수행했다. 그것은 여전히 ​​나에게 널 값을 준다. NSLog (@ "% @", newModel.name)'를 사용하면 올바른 문자열을 얻을 수 있으므로 저장하게됩니다. 그러나'listOfCars.cars'는 나에게 널 준다. 어쩌면 개체를 보려면 다른 NSLog를 수행해야합니다. – user1698475

관련 문제