2012-10-06 1 views
1

난 그냥 (발사) 충돌 보고서를 가지고는, 검토, 맥 앱 스토어에 내 응용 프로그램을 제출 한 후 :오류 - '객체의 개수가 카운트에서 다른 키'

Application Specific Information: 
objc[1832]: garbage collection is ON 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSDictionary initWithObjects:forKeys:]: count of objects (0) differs from count of keys (2)' 
terminate called throwing an exception 
abort() called 

이가 코드의 일부로 의심 스럽습니다.

- (NSMutableDictionary*)getNewChapterWithTitle:(NSString*)title 
{ 
    if (title==nil) title = [NSString stringWithFormat:@"Chapter %d",[[self appChapters] count]+1]; 

    // Align Justify 
    NSMutableParagraphStyle * paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 
    [paragraphStyle setAlignment:NSJustifiedTextAlignment]; 

    // Set Font 
    NSDictionary *font = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:[NSFont fontWithName:@"Garamond" size:15.0],paragraphStyle, nil] forKeys:[NSArray arrayWithObjects:NSFontAttributeName, NSParagraphStyleAttributeName, nil]]; 

    NSString* lipsum = @"\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc consequat fermentum faucibusPhasellus ac consequat metus. Sed at lectus sit amet tellus vulputate mollis vel suscipit metus. Nulla a sapien purus. Aenean sollicitudin lacus varius nisi faucibus nec lacinia mauris fermentum. Aliquam euismod quam rhoncus ipsum pulvinar quis condimentum magna imperdiet. Nullam augue leo, dictum tincidunt ullamcorper id, porta in lorem. Duis in vestibulum nisl.\ 
    \n\n\ 
    Donec imperdiet dignissim massa, at ultricies enim dignissim at. Etiam pharetra neque quis quam condimentum vitae viverra nisl volutpat. Vivamus urna ante, ultrices ut tincidunt id, auctor id est. Nunc eget diam purus, at viverra orci. Maecenas eu magna mi, id venenatis arcu. Maecenas ornare, tortor sit amet gravida placerat, diam urna lacinia nunc, a dictum arcu libero sed metus. Nulla pulvinar sapien vitae lectus faucibus quis tempus elit volutpat. Integer facilisis interdum lectus, sit amet dapibus enim mattis non. Donec sed pulvinar risus. Mauris in nulla urna, sit amet placerat turpis. Proin felis erat, pretium sed pharetra vel, tincidunt quis tortor. Donec ut nisi dui. Pellentesque gravida gravida justo, quis convallis leo euismod in. Nam pretium accumsan sapien ac interdum."; 

    NSMutableAttributedString* theLipsum = [[NSMutableAttributedString alloc] initWithString:lipsum attributes:font]; 

    return [[NSMutableDictionary dictionaryWithObjectsAndKeys: 
      [title retain],@"title", 
      [theLipsum retain],@"content", 
      [NSNumber numberWithInt:0],@"isMarkdown", 
      nil] retain]; 
} 

위와 관련하여 "명백하게"잘못된 것이 있습니까?retain의 보고서 이후에 추가되었습니다;


이 힌트 (그것은 ... awakeFromNib에서, 4 ~ 5 배처럼라고, 그래서 나는 그 범인 추측되는 것) 그래도 도움이 될지 모르겠다.

답변

4

[NSFont fontWithName:@"Garamond" size:15.0]은 아마도 nil을 반환한다. 내가 아는 한 OSX에서는 기본 글꼴이 아닙니다. 따라서 객체 배열은 비어 있습니다. 왜냐하면 첫 번째 객체 인 nil까지 추가되기 때문입니다.

+0

@Remizorrr 얘들 아, 고마워! 그 생각조차하지 못했습니다. 어떻게 진행되는지 체크하고 필요할 경우 글꼴을 바꿉니다. ;-) –

1

여기에 문제가 있다고 생각합니다. - [NSFont fontWithName:@"Garamond" size:15.0] 이 코드는 nil을 반환하므로 배열이 비어 있습니다.

이 글꼴은 표준이 아니지만 컴퓨터에 설치되어있을 수 있습니다. 문제가있는 경우이 글꼴을 앱 리소스에 추가해야합니다.

+0

고마워요! :-) –