2012-12-18 3 views
0

다른 클래스의 변수로 배열을 설정하는 방법을 찾으려고합니다. 내가 NSObject 클래스 myObject, 어디에 내가 int 유형의 myInt 및 mySecondInt 변수를 선언 했어.내 NSObject 클래스의 변수로 배열을 설정할 수 없습니다

해결하기 위해 도와주세요 아크 허용되지 'int''id'의 암시 적 변환 : 다음

나는 인 myObject를 가져오고,이 같은 배열 설정하려고 :

MyObject *object = [[MyObject alloc]init]; 

    object.myInt = 50; 
    object.mySecondInt = 15; 

    object.array = [[NSArray alloc]initWithObjects:object.mySecondInt,object.myInt, nil]; 

을 그리고 나는 오류가 발생했습니다 이, 나는 객관적인 학습 -c이고 다른 클래스의 변수를 관리하는 방법을 알고 싶습니다.

+0

확실히 내 문제를 해결하는 내 대답을 참조하십시오. – Girish

답변

0

NSArray는 객체, 민트와 mySecondInt가 INT 값이 아닌 보유 객체. NSNumber 또는 NSString으로 유형을 변환 할 수 있습니다. NSString에 타입 캐스팅 한 다음 intValue에 액세스하십시오. 또 다른 방법은 배열 &에 전체 개체를 추가 한 다음 배열 &에서 개체를 검색 한 다음 개별 엔터티를 추가하는 대신 더 나은 해결 방법 인 개체에 액세스하는 것입니다.

+0

감사합니다. 도움이되었다. –

2

프리미티브의 경우 래퍼 클래스가 있어야 개체를 개체로 저장할 수 있습니다.

Ex.

[[NSArray alloc]initWithObjects:[NSNumber numberWithInt:object.mySecondInt],[NSNumber numberWithInt:object.myInt], nil]; 

NSArray 저장 일반 포인터 (객체 참조)이다 id 년대. 프리미티브는이 범주에 해당하지 않으며 Objective-C는 자동 저장을 지원하지 않습니다.

+0

John, 고맙습니다, 이제 알 겠어요. 왜 그런 식으로 선언 할 수 없는지 궁금합니다. @property (nonatomic, assign) NSNumber myInt; 그것은 오류와 함께 경고 .. –

+0

@ EvgeniyKleban 당신 NSNumber * myInt 의미합니까? – John

+0

네, 그랬을 때 더 많은 오류가 발생했습니다. 예를 들어, 이렇게 설정할 수는 없습니다 - object.myInt = 50; 단지 int 대신 NSNumber로 선언 할 때 –

2

NSArray는 객체 (NSObject 또는 그 서브 클래스의 인스턴스) 만 보유 할 수 있지만 myInt 및 mySecondInt는 객체가 아닌 C int 값입니다.

object.array = [[NSArray alloc]initWithObjects:[NSNumber numberWithInt:object.mySecondInt],[NSNumber numberWithInt:object.myInt], nil]; 

을 아니면 새로운 엑스 코드를 사용하는 경우, 당신은 단순히 다음과 같이 작성할 수 있습니다 :

이 작업을 수행 할 수

object.array = @[@50,@15]; 
+0

고맙습니다. onevcat –

관련 문제