나는 iOs4 우리의 아이폰 앱을 업데이트하고 있는데 코드할당 된 값이 엑스 코드
for (i = 0; i < self.numberOfSegments; i++) {
[self setWidth:round(width[i]) forSegmentAtIndex:i];
}
에 문제 "패스에 의해 인수 함수 호출이 정의되지"로 실행 한 충분하다. width [i]가 초기화되지 않았다. 그러나 아래 코드를 업데이트하면 "할당 된 값은 가비지 또는 정의되지 않음"이라는 새로운 오류가 나옵니다. 이 글에서 segWidth는 가비지로서의 가치를 유지한다고 생각합니다. 정확하고 그렇다면 어떻게해야합니까?
for (i = 0; i < self.numberOfSegments; i++) {
float segWidth = (float)width[i];
[self setWidth:round(segWidth) forSegmentAtIndex:i];
}
------------- 편집 ------------------ 답장들에 대한
감사합니다. 더 자세한 정보는 다음과 같습니다.
메소드의 일반화 된 버전은 someFunction으로 아래에 표시됩니다. 나는 못생긴 캐스트를 제거했지만 라인에 대해 "할당 된 값은 가비지 또는 정의되지 않음"논리 오류가 표시됩니다. segWidth = width[i];
값 폭 [i]가 명확한 초기화를 가지고 있지 않은 것으로 알고 동의합니다. 기본 Obj-c 부동 유형에 대한 이해가 부족하거나 할당 구문에 논리 결함이있는 경우? setWidth의
- (void)someFunction
{
unsigned int n = self.numberOfSegments;
float width[n];
for (i = 0; i < n; i++) {
width[i] = someFloatValue;
}
...
for (i = 0; i < self.numberOfSegments; i++) {
float segWidth = 0.0;
segWidth = width[i];
[self setWidth:round(segWidth) forSegmentAtIndex:i];
}
}
정의는 다음과 같습니다
- (void)setWidth:(CGFloat)width forSegmentAtIndex:(NSUInteger)segment
을 그리고 패스에 의해 인수 함수 호출에을 정의되지 않는다 즉 : 당신이 요구하고 있으리라 믿고있어
- (void)setWidth:(CGFloat)width forSegmentAtIndex:(NSUInteger)segment; // set to 0.0 width to autosize. default is 0.0
'setWidth : forSegmentAtIndex :'에 대한 전체 메소드 서명은 무엇입니까? 우리는 그러한 유형을 볼 필요가 있습니다. –
당신이 너비를 캐스팅한다는 사실은 나를 깜짝 놀라게한다. –
오른쪽 - ObC/코코아의 두 번째 주입니다. 내 코드베이스가 아닙니다. 메소드 서명은 - (void) setWidth : (CGFloat) width forSegmentAtIndex : (NSUInteger) segment; 캐스팅은 알려지지 않은, 불명확 한 해킹에 대한 더 많은 정의를 얻으려는 시도였습니다. 헤드 업에 감사드립니다! – lucygenik