2011-09-28 8 views
0

나는 아이폰 OS 3.1.2하지만 아이폰 OS 4의 실행 벌금 UILabel의의 글꼴 설정에이 예외를 얻고는, 코드 라인은어설 션 실패 - [UILabel의의 setFont는 :]

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: font != nil' 

입니다

Outbound_Label.font = [UIFont fontWithName:@"DS-Digital" size:24]; 

DS-Digital은 내 사용자 정의 글꼴입니다.

+1

아마도 반환 값을 확인해야합니다. 글꼴을 찾지 못했을 것입니다. 리소스 파일이 제대로 포함되어 있는지 확인하십시오. –

답변

1

내 생각 엔 사용자 지정 글꼴이 인스턴스화되지 않았다는 것입니다. 나는 일이 두 가지가이 같은 문제를 가지고 때마다

는 : 오류가 쉽게입니다

UIFont *font = [UIFont fontWithName:@"DS-Digital" size:24]; 
Outbound_Label.font = font; 

가 그럼 난 확인할 수 있습니다 글꼴을 얻고 글꼴 설정을, 나는 문제를 찾을 수 구분 디버거 또는 NSLog().

사실 이것은 처음부터 코드를 작성하는 매우 명확한 방법입니다. 최적화에 대해 걱정할 필요가 없으며 선명도와 유지 관리의 편의성에 대해서만 염려합니다. 나중에 프로필에 성능 문제가있는 경우 실제 범인을 찾아 해결하십시오. 코드가 명확할수록 더 쉽습니다.

이와 같은 경우 컴파일러는 의심 할 여지없이 글꼴 변수를 최적화하여 아무런 해가 없도록합니다.

이 참조 : 이제 응용 프로그램 번들에서 해당 글꼴을 포함 할 수 있습니다 사용자 정의 글꼴을 사용하고 자신의 Info.plist 파일에 UIAppFonts 키를 포함하여 시스템에 해당 글꼴을 등록 할 SO answer
응용 프로그램. 이 키의 값은 응용 프로그램 번들의 글꼴 파일을 식별하는 문자열 배열입니다. 시스템은 키를 볼 때 지정된 글꼴을로드하여 응용 프로그램에서 사용할 수 있도록합니다.

+0

나는 위의 방법을 사용하여 시도했지만 두 번째 줄에서 충돌합니다. –

+0

첫 번째 행에서 nil 또는 글꼴 인스턴스가 완료 되었습니까? 완료되면 Outbound_Label이 유효합니까? BTW, Outbound_Label은 무엇입니까? 코딩 실습은 변수를 대문자로 시작하는 변수 낙타의 경우로 만들고, 클래스는 대문자로 시작합니다. 따라서 코드를 더 쉽게 이해할 수 있으며 ARC는 해당 규칙을 요구합니다. – zaph

+0

글꼴은 첫 번째 코드 줄에서 nil이고 Outbound_Label은 UIalbel입니다. 리소스에 DS-DIGI.ttf가 이미 추가되어있어 그 이유가 무엇인지 알 수 있습니까? –

1

[UIFont fontWithName:@"DS-Digital" size:24]은 nil을 반환합니다. "DS-Digital"(Apple supported font list)에 사용할 글꼴이 없기 때문입니다. 그래서 그것은 충돌을 준다.

+0

나는 리소스에이 이름의 사용자 정의 글꼴을 추가했습니다. –