2 개의 속성이있는 핵심 데이터 엔티티가 있습니다. 하나는 "이름"이라는 문자열이고 다른 하나는 "메시지"라는 문자열입니다. 사용자가 추가 한 모든 특성에 대한 텍스트 파일을 만드는 방법이 필요합니다. 필자는 파일 이름을 이름 속성으로, 내용을 메시지 속성으로 사용하지 않았습니다. 누구든지이 작업을 수행하는 방법을 알고 있다면 도움이 될 것입니다. 어떤 도움코어 데이터 엔터티를 코코아에서 텍스트 파일로 내보내기
1
A
답변
8
에 대한
덕분에 당신은 관련된 단계에 전혀 어떤 생각을 주어진 적이 있습니까? (당신이 필터 결과를 원하는 경우 술어 가능 )
- 는 가져 오기 요청을 만듭니다.
- 가져 오기 요청을 실행하십시오. 성공한 경우 ...
- 반환 된 결과 배열의 각 인스턴스에 대해 ...
- "name"특성을 사용하여 경로를 만듭니다.
- 방금 만든 경로에 "message"문자열을 씁니다. 당신이 단계를 확인하면
- 다음 예 ...
, 각 단계를 수행하는 방법을 알아 내기 위해 the documentation의 관련 부분을 찾아 볼 전혀 어렵다.
몇 가지 인라인을 만들고 대상 폴더가 쓰기 가능하고 덮어 쓰기에 신경 쓰지 않는다면 실제로 코드 세 줄을 수행 할 수 있습니다. 당신이 오류를 가져 무시 가정, 기업 설명과 페치 요청을 초기화하기 수 없기 때문에이 네 줄의 최소 소요 있도록
좋아
업데이트. 당신은 코드를 요구하기 때문에 : 물론
NSFetchRequest *fr = [[[NSFetchRequest alloc] init] autorelease];
[fr setEntity:[NSEntityDescription entityForName:@"EntityName"
inManagedObjectContext:[self managedObjectContext]]]
error:nil];
NSArray *results = [[self managedObjectContext] executeFetchRequest:fr error:nil];
for (id result in results){
[[result valueForKey:@"message"] writeToFile:[basePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt", [result valueForKey:@"name"]]]
atomically:NO]
};
이 (즉, 그것은 추한) 매우 읽을 수 없습니다 및 가정의 모든 종류의 수 있습니다,하지만 당신은 요점을 파악.
// Create the fetch request
NSFetchRequest * fr = [[[NSFetchRequest alloc] init] autorelease];
[fr setEntity:[NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:[self managedObjectContext]]];
// Execute the fetch request
NSError * error = nil;
NSArray * results = [[self managedObjectContext] executeFetchRequest:fr error:&error];
if (results)
{
// Process the results
NSString * name;
NSString * message;
NSString * path;
for (id result in results)
{
// Figure out this result's info
name = [result valueForKey:@"name"];
message = [result valueForKey:@"message"];
path = [basePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt", name]];
// Write the message to the predetermined path
[message writeToFile:path atomically:NO];
}
} else {
// Error fetching results, so present error to user
[NSApp presentError:error];
}
답장을 보내 주셔서 감사합니다. 3 줄의 코드를 게시 할 수 있습니까? – nosedive25
나는 그렇게 해왔다.하지만 장래에 문서에서 물건을 보려고 적어도 시도해 보는 것이 자신의 최대 관심사이다. 연구 기술을 향상 시키면 더 나은 개발자가 될 것입니다. –
코드를 게시 주셔서 감사합니다! – nosedive25