2017-10-23 6 views
0

목적 C와 유형 '아이디 _NonNull'의 매개 변수를 초기화 할 수 없습니다 :유형의 좌변을 두 번

나는 유형의 여러 변수를 두 번, 오래 오래, 내가 배열에 넣을있는 NSString 및 INT는되어야한다 CSV 파일에 단일 행으로 인쇄됩니다.

NSArray * [NSArray arrayWithObjects : var1, var2, var3, var4, var5, nil];

여기서 var1은 double 유형이며 var2, var3은 long long 유형입니다.

이 나에게 내가 알아낼 목적 C와없는에서 안돼서 VAR1

에서 "double 형의 좌변과 유형 '아이디 _NonNull'의 매개 변수를 초기화 할 수 없습니다"라고 말하는 구문 오류를주는 무슨 나는 잘못하고있다.

답변

2

Objective-C의 NSArray (및 NSDictionary)의 내용은 개체 여야합니다. 모든 스칼라 유형 intdouble 등은 개체가 아닙니다.

쉬운 솔루션이있다 :

랩 바로 가기의 모든 스칼라 유형 NSNumber 초기화 @()

double var1 = 12.0; 
NSString *var2 = @"Foo"; 
NSArray *valArray = [NSArray arrayWithObjects: @(var1), var2, nil]; 

또는 정지 짧게는

NSArray *valArray = @[@(var1), var2]; 

배열에서 다시 double 유형을 얻을하려면 당신이 작성해야합니다

double var3 = valArray[0].doubleValue; 

사이드 노트 : 변수 이름은 소문자로 시작해야합니다.

+0

감사합니다. 도움이 된 –

1

var1, var2, var3을 NSNumber로 변환하면 문제가 해결됩니다.