문맥은 일련의 온도를 그래프로 나타내려고한다는 것입니다. 응용 프로그램이 열립니다왜 이것이 경로를 그리지 않습니까?
이 openfile이 사용되는 I는 다음이있는 NSString "의 FileContents"로 수정 된 csv 파일을 읽어 내 문서 클래스를 초기화한다 : 내 응용 프로그램 (내가 그것을 이해) 다음과 같이 작동하는 순간
분리 자나 공백없는 값을 포함하는 문자열 배열로 분리하십시오. 다음과 같이 그 후NSArray *temps = [fileContents componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"\n|\r"]];
을 내 사용자 지정보기는 TemperatureGraph 클래스를 초기화하고, 바로 그것을 아래 코드에서 볼 수있는 currentlog이되는 배열을 전달합니다. 인스턴스 ID는 최신 값입니다.
마지막으로 나는 호출 :[current drawpath];
아래의 인스턴스 메소드가 어느입니다 :
- (void) drawpath
{
NSBezierPath *program = [NSBezierPath bezierPath];
NSPoint st = NSMakePoint(0, 0);
[program moveToPoint:st];
[program setLineWidth:10];
[program setLineCapStyle:NSRoundLineCapStyle];
[[NSColor blueColor] setStroke];
[program stroke];
NSUInteger a, b;
a = [currentlog count];
b = 0;
while (b <= a) {
NSPoint new;
float x;
x = 5 * b;
new = NSMakePoint(x, [[currentlog objectAtIndex:b] floatValue]);
[program lineToPoint:new];
[program stroke];
b += 6;
}
}
왜 작동하지 않습니다? 정의가 작동하지 않습니다 : 응용 프로그램이 컴파일되고 실행되지만 빈 창이 있습니다.
또한 여기에있는 신참 오류를 지적하고 코드에 영향을주지 않습니다. 아직 학습 단계에 있으므로.
감사를 할 수 있습니다.! 그래서 간단 해요! 그래서 드로잉이 데이터가 떨어져 내 문서 하위 클래스에서 내 사용자 정의보기로 전달됩니다 전달됩니다. 그것은 init 메서드가 호출 될 때까지.이 일을해야하는 다른 방법 있는가? initWithData 같은 것이지만 View 서브 클래스의 경우? – Priesto
초기화 한 후에도 전달할 수없는 이유는 나중에 데이터를 변경할 수있는 옵션을 제공합니다. 데이터를 업데이트하면'setNeedsDisplay :'를 호출하면 뷰가 새 데이터로 다시 그리기. – jrturton
고마워. 나는 이것을 시도했지만 데이터를 전달하는 방식에 문제가있다. 그러나 나는 또 다른 문제를 추측한다. 이것이 작동하지 않는 이유를 말해 줄 수 있다고 가정하지 마십시오. NSDocument 메소드에서 : 'TemperatureGraph * current = [[TemperatureGraph alloc] init]; // 클래스보기 NSUInteger a = [temps count]; // 35857 항목 [현재 setlog : temps]; ' 온도 그래프에 있음.m : '- (void) setlog : (NSArray *) 로그 { 현재 로그 = 로그; [self setNeedsDisplay : YES]; }' 결과적으로 항목이없는 배열이 생성됩니까? – Priesto