링크 된 페이지에서 dataForType:error:
의 구현 예는 구식이거나 부정확 한 정보를 포함하고 있다고 덧붙이고 싶습니다.
이
dataOfType:error:
의 예를 구현 읽기 :이 가진 몇 가지 문제가 있습니다
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError {
[textView breakUndoCoalescing];
NSData *data = [textView dataFromRange:NSMakeRange(0, [[textView textStorage] length])
documentAttributes:nil
error:outError];
if (!data && outError) {
*outError = [NSError errorWithDomain:NSCocoaErrorDomain
code:NSFileWriteUnknownError userInfo:nil];
}
return data;
}
여기에 내가 애플에 보낸 보고서입니다. 먼저 NSTextView
에는 dataFromRange:documentAttributes:error:
메서드가 없습니다. 문서에 지정된 데이터의 구조가 주어진 경우이 값은 [text dataFromRange…]
이어야합니다.
NSAttributedString
에 대한 설명서에 따르면 dataFromRange:documentAttributes:error:
"적어도 기록 할 형식을 결정하기 위해 NSDocumentTypeDocumentAttribute를 지정하는 문서 속성 사전을 요구합니다."
그래서, 예를 들어 구현은 적어도
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError {
[textView breakUndoCoalescing];
NSData *data = [text dataFromRange:NSMakeRange(0, [[textView textStorage] length])
documentAttributes:[NSDictionary dictionaryWithObjectsAndKeys:NSPlainTextDocumentType, NSDocumentTypeDocumentAttribute, nil]
error:outError];
if (!data && outError) {
*outError = [NSError errorWithDomain:NSCocoaErrorDomain
code:NSFileWriteUnknownError userInfo:nil];
}
return data;
}
또는 RTF 또는 다른 텍스트 값 형식에 대한 몇 가지 다른 적절한 사전 값을 읽어야합니다.
OP는 게시 당시 문서를 보지 못했지만 문서에 연결하면 문서가 손상되어 생각만큼 도움이되지 않습니다. 나는 오랫동안 애플의 구현을 그대로 복사했지만 OP와 같은 오류에 대해 내 머리를 두드린 후 이것을 발견했다.
다른 사람에게 도움이되기를 바랍니다.
고마워, 내가 살펴 봐야 해 –
이 링크가 존재하지 않습니다. 그래서 귀하의 의견에 솔루션을 포함해야합니다. – Yepher