저는 Cocoa의 초보자입니다. Windows에서 C/C++로 몇 가지 작은 앱을 개발하십시오. Cocoa에서 "간단한"앱을 만들고 싶습니다. 사용자 특정 XML 파일의 경우 파일 노드는 "최종 사용자가 볼 수 있음"으로 표시됩니다.코코아 XML 리더 앱
일부 NSTextField와 인터페이스를 만들었습니다. Xcode 프로젝트에서 "XMLFile.h"와 "XMLFile.m"을 얻을 수 있도록 "XMLFile"이라는 NSDocument 하위 클래스를 만들었습니다. 확장 - XML 파일 : XML - 역할 :보기 - 클래스 : XMLFILE - 저장소 유형 : XML 여기
내 "XMLFILE이 나는 새로운"문서 유형 "을 설정 내 응용 프로그램의 PLIST에서
. H : XMLFile.m ""여기#import <Cocoa/Cocoa.h>
@interface FichierXML : NSDocument {
}
IBOutlet NSTextField *dateField;
IBOutlet NSTextField *titleField;
IBOutlet NSTextField *descField;
IBOutlet NSTextField *vidfileField;
IBOutlet NSTextField *imgfileField;
IBOutlet NSObjectController *object;
NSUInteger *mask;
@end
그리고 내이다 "
#import "XMLFile.h"
@implementation XMLFile
- (BOOL)readFromData:(NSData *)datafile ofType:(NSString *)typeName error:(NSError **)outerror
{
NSMutableArray* ReportCreationDate = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* ReportTitle = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* ReportDescription = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* VideoPath = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* VideoThumbnailImageName = [[NSMutableArray alloc] initWithCapacity:10];
NSXMLDocument* doc = [[NSXMLDocument alloc] initWithData:datafile options:mask error:outerror];
NSXMLElement* root = [doc rootElement];
NSArray* dateElement = [root nodesForXPath:@"//Report/ReportCreationDate" error:nil];
for(NSXMLElement* xmlElement in dateElement)
[dateElement setStringValue:[xmlElement stringValue]];
NSArray* titleElement = [root nodesForXPath:@"//Report/ReportTitle" error:nil];
for(NSXMLElement* xmlElement in titleElement)
[titleField setStringValue:[xmlElement stringValue]];
NSArray* descElement = [root nodesForXPath:@"//Report/ReportDescription" error:nil];
for(NSXMLElement* xmlElement in descElement)
[descField setStringValue:[xmlElement stringValue]];
NSArray* vidfileElement = [root nodesForXPath:@"//Report/Videos/Video/VideoPath" error:nil];
for(NSXMLElement* xmlElement in vidfileElement)
[vidfileField setStringValue:[xmlElement stringValue]];
NSArray* imgfileElement = [root nodesForXPath:@"//Report/Videos/Video/VideoThumbnailImageName" error:nil];
for(NSXMLElement* xmlElement in imgfileElement)
[imgfileField setStringValue:[xmlElement stringValue]];
[doc release];
[ReportCreationDate release];
[ReportTitle release];
[ReportDescription release];
[VideoPath release];
[VideoThumbnailImageName release];
return YES;
}
@end
사용자는 XMLFILE를 열고,이 XMLDocument는 노드의 데이터를 추출 할 파일을 분석하고 D로 전송 ifferents NSTextField. 그러나 그것은 효과가 없습니다.
누군가 나를 도울 수 있다면.
지금 :
마지막으로, 당신이 만드는 시도 할 수도 있는지 당신이 NSXMLDocument 조회하고 오류가 없습니다 너는 특권이있다. ;) –
@sudo rm -rf 안녕하세요, upvote 주셔서 감사합니다! (나는 아직도 "사방 코멘트"에 대한 담당자에게 조금 부족한 것 같다.) –
아, 잘 생각해 보니, 20이라고 생각했습니다. 계속해라! :디 –