22. 할당 해제된 인스턴스 0x52cc690 오류 메시지를 해결하세요.
이 오류는 다음과 같이 객체에 값을 할당하려고 할 때 발생합니다.
tfContent.text=bodyText;
이때 다음을 수행할 수 있습니다. NSZombieEnable 옵션을 열면 콘솔에 다음과 같은 출력이 표시됩니다.
***-[CFString _isNaturallyRTL]: 메시지가 할당 해제된 인스턴스 0x52cc690으로 전송되었습니다.
설명 _isNaturallyRTL 메시지가 해제된 개체로 전송되었습니다. 위의 설명으로 판단하면 tfContent와 bodyText라는 두 개체일 수 있습니다.
tfContent 또는 bodyText의 메모리 주소를 인쇄하여 어떤 객체가 릴리스되었는지 확인할 수 있습니다.
NSLog(@"tfContent:0x%x",(int) tfContent); NSLog(@"bodytext:0x%x",(int) bodyText);
결과는 bodyText가 일찍 릴리스되었음을 보여줍니다.
tfContent: 0x52cf160 bodytext: 0x52cc690
bodyText를 적절한 위치에 유지하면 문제가 해결됩니다.
23. putpkt:write failed: 깨진 파이프 오류
장치를 다시 시작하세요.
24. .h파일을 찾을 수 없습니다
사실 .h 파일은 대상에 포함되어 있지 않습니다. 해당 .m 파일을 선택하고 "유틸리티 표시" 버튼(도구 모음 오른쪽 끝에 있음)을 클릭한 다음 유틸리티에서 대상 멤버십을 찾아 대상 선택을 취소한 다음 다시 선택합니다. 이는 대상의 Buildphase에 .m 파일을 추가하는 것과 같습니다.
25. Xcode 4: iPhone용 xib를 iPad용으로 변환하는 방법
Xcode 3.x에서는 iPad 버전 생성 메뉴를 통해 iPhone 버전에서 iPad 버전으로 xib를 변환합니다.
그러나 Xcode 4.x에서는 이 메뉴를 찾을 수 없습니다. 몇 가지 탐색 끝에 저자는 다음 방법을 사용하여 xib를 iPad 버전으로 변환할 수 있음을 발견했습니다.
1. xib 소스 파일을 수정합니다.
xib 파일은 실제로 xml 파일입니다. 프로젝트 탐색기에서 xib 파일을 마우스 오른쪽 버튼으로 클릭하고 "다른 이름으로 열기 -> 소스 코드"를 선택하면 소스 코드 모드에서 xib 파일을 볼 수 있습니다. "com.apple.InterfaceBuilder3.CocoaTouch.XIB" 줄을 찾아 변경합니다. " com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB", 즉 ".iPad"가 추가됩니다.
⌘+F를 눌러 검색창을 열고 교체 메뉴를 클릭해 모드를 교체 모드로 변경합니다. xib 파일의 모든 "IBCocoaTouchFramework"를 "IBIPadFramework"로 바꾸십시오.
변경 사항을 저장하려면 ⌘+S를 누르세요.
2. xib 보기 크기 수정
xib 파일을 마우스 오른쪽 버튼으로 클릭하고 "다른 이름으로 열기 -> 인터페이스 빌더 – iOS"를 선택한 다음 IB 모드에서 엽니다.
xib 파일에서 루트 보기(UIView)를 선택하고 속성 패널에서 크기 옵션을 찾아 전체 iPad 화면으로 변경합니다.
이제 iPad 버전의 xib를 사용할 수 있습니다.
26. 아이콘 크기(0 x 0)가 크기 요구 사항을 충족하지 않습니다.
프로젝트의 BuildSettings를 열고 Compress PNG Files를 찾아 값을 No로 설정합니다.
또는:
png 파일을 선택하고 FileInspector 패널에서 파일 형식을 찾아 "PNG"에서 "아이콘"으로 변경합니다.
27. 경고: 이전 함수 프로토타입이 없습니다
대상 열기 ->BuildSettings, 프로토타입 검색, Missing Function ProtoTypes를 NO로 변경합니다.
28. CorePlot을 컴파일할 때 "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clangfailed with exit code 1" 오류가 발생합니다.
Scheme을 iOS 장치에서 iPhone 5.0 시뮬레이터로 변경하세요. . 또는 C/C++용 컴파일러를 LLVM GCC4.2로 변경하세요. 동시에 Core Plot 1.0은 더 이상 이전 armv6 CPU를 지원하지 않습니다.
29. CABasicAnimation을 사용하여 UIView의 알파 값을 변경할 수 없습니다.
CALayer에서 UIView의 알파 값은 실제로 "불투명도"입니다. opcity를 keyPath로 사용하세요.
30. CorePlost: 축 레이블을 사용자 정의한 후 눈금 표시가 표시되지 않습니다.
Axis의 majorTickLocations를 눈금 표시를 표시하려는 위치로 설정합니다.
NSMutableArray*customTickLocations=[[[NSMutableArray alloc]init]autorelease]; for(int i=0;i<10;i++){ [customTickLocationsaddObject:[NSNumber numberWithInt:i]]; } xAxis.majorTickLocations=[NSSetsetWithArray:customTickLocations];
31. 사용자 정의된 UITableViewCell의 경우 indentationLevel이 적용될 수 없습니다.
layoutSubviews 메소드는 사용자 정의된 UITableViewCell에서 구현되어야 합니다.
- (void)layoutSubviews { [super layoutSubviews]; float indentPoints = self.indentationLevel *self.indentationWidth; for(UIView *view in self.subviews){ view.frame = CGRectMake( view.frame.origin.x+indentPoints, view.frame.origin.y, view.frame.size.width, view.frame.size.height ); } }
위 내용은 iOS 개발질문(3) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!