2014-06-15 6 views
1

Arm64를 지원하기 위해 변환 한 iOS 앱이 있습니다. 내 초기 변환 단계는 : $에iOS 앱을 Arm64로 변환 한 후 텍스트가 잘못 렌더링되는 이유는 무엇입니까?

1) 변경 대상 아키텍처 $ (ARCHS_STANDARD_32_BIT) (ARCHS_STANDARD)

2) 수정 열거 정의 :

// before 
typedef enum { 
    MyEnumValue1, 
    MyEnumValue2 
} MyEnum; 

// after 
typedef NS_ENUM(NSUInteger, MyEnum) { 
    MyEnumValue1, 
    MyEnumValue2 
} 

3) 잘못된 형식을 수정 stringWithFormat에서 :

// before 
[NSString stringWithFormat:@"The value is %d", someValue]; 

// after 
[NSString stringWithFormat:@"The value is %lu", someValue]; 

꽤 많이 있습니다. 내가 겪었던 문제는 일부보기에서 텍스트가 이제 잘못 렌더링된다는 것입니다. 텍스트를 렌더링하는 뷰 주변의 코드는 변경되지 않았으며 사용자 지정 텍스트 드로잉을 수행하지 않습니다. 아래 예제 사진에서 텍스트는 UIButton에 의해 렌더링됩니다. 내가에서 앞뒤로 이동할 수 있습니다

After conversion to Arm64

Arm64로 변환 후 UIButton에 의해 렌더링 Arm64로 변환하기 전에 UIButton에 의해 렌더링

텍스트

Before conversion to Arm64

텍스트는 변환하기 전에 커밋 변환 후 커밋하고이를 재현하십시오. 필자는 diff를 면밀히 검토했으며 명확한 기여 요인을 보지 못했습니다.

질문

  1. 이 무엇을 일으킬 수 있을까?
  2. 디버깅 방법 및/또는 검색 대상에 대한 아이디어가 있습니까?
  3. 더 나은, 아무도 왜 이것이 일어나고 있는지 아십니까?
+0

최소한의 샘플을 제공 할 수 있습니까? 위의 코드에 나와 있지 않습니다. –

+0

일부 코드를 제공해 드리겠습니다. 그러나 무엇을 보여줄지 확실하지 않습니다. 'UIButton' 설정을 원합니까? – XJones

+0

예 오류를 보여주는 작은 작업 프로젝트 .. 도움이되는지 모르겠지만 이드는 그것을보고 싶어합니다. –

답변

0

마침내이 동작을 나타내는 샘플 앱을 만들었습니다. 그 과정에서 나는 그 문제를 발견했다. 내 맞춤형 UITableViewCell 클래스 중 하나는 앱 내 여러 셀 유형의 수퍼 클래스로 사용됩니다. 이 셀의 cell.layer.shouldRasterize 설정을 YES (으)로 설정했습니다. 이것이 32 비트 버전의 응용 프로그램에서 제대로 작동하는 것처럼 보였지만 ARM64 버전에서는 문제가 발생했습니다. 셀 렌더링 성능에 악영향을 미칠 수 있으므로 어떤 경우에도해야 할 일은 잘못된 것일 수 있습니다. 이 셀들은 다양한 가장자리 주위에 그림자 효과를 가지고있어서 내가 왜 shouldRasterize을 설정했는지 알 수 있습니다.

샘플 앱을 사용하면 누구에게도 도움을 줄 수 없으므로 조사하는 데 시간을 내 주셔서 감사합니다. 알아낼 수 없다면 샘플 앱을 게시했을 것입니다.