2010-04-02 3 views
1

2 개의 속성이있는 핵심 데이터 엔티티가 있습니다. 하나는 "이름"이라는 문자열이고 다른 하나는 "메시지"라는 문자열입니다. 사용자가 추가 한 모든 특성에 대한 텍스트 파일을 만드는 방법이 필요합니다. 필자는 파일 이름을 이름 속성으로, 내용을 메시지 속성으로 사용하지 않았습니다. 누구든지이 작업을 수행하는 방법을 알고 있다면 도움이 될 것입니다. 어떤 도움코어 데이터 엔터티를 코코아에서 텍스트 파일로 내보내기

답변

8

에 대한

덕분에 당신은 관련된 단계에 전혀 어떤 생각을 주어진 적이 있습니까? (당신이 필터 결과를 원하는 경우 술어 가능 )

  1. 는 가져 오기 요청을 만듭니다.
  2. 가져 오기 요청을 실행하십시오. 성공한 경우 ...
  3. 반환 된 결과 배열의 각 인스턴스에 대해 ...
  4. "name"특성을 사용하여 경로를 만듭니다.
  5. 방금 ​​만든 경로에 "message"문자열을 씁니다. 당신이 단계를 확인하면
  6. 다음 예 ...

, 각 단계를 수행하는 방법을 알아 내기 위해 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]; 
} 
+0

답장을 보내 주셔서 감사합니다. 3 줄의 코드를 게시 할 수 있습니까? – nosedive25

+0

나는 그렇게 해왔다.하지만 장래에 문서에서 물건을 보려고 적어도 시도해 보는 것이 자신의 최대 관심사이다. 연구 기술을 향상 시키면 더 나은 개발자가 될 것입니다. –

+0

코드를 게시 주셔서 감사합니다! – nosedive25

관련 문제