>  기사  >  백엔드 개발  >  iOS 개발 질문 (1)

iOS 개발 질문 (1)

黄舟
黄舟원래의
2017-01-20 09:23:321025검색

1. ImagePicker 크기 설정
ImagePicker는 Popover Controller에서 항상 기본 크기로 표시되며 popoverContentSize 속성 설정은 쓸모가 없는 것 같습니다. 해결 방법은 ImagePicker를 사용자 정의 ViewController에 "포함"한 다음 이 ViewController를 Popover하는 것입니다.

UIViewController *containerController = [[UIViewController alloc] init];
containerController.contentSizeForViewInPopover = CGSizeMake(600,self.view.frame.size.height);
[containerController.viewaddSubview:_imagePicker.view];
_popController= [[UIPopoverController alloc] initWithContentViewController:containerController];
CGPoint p=[self.view convertPoint:button.center
fromView:sender.superview];
[_popController presentPopoverFromRect:(CGRect){p,CGSizeZero}
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
[_imagePicker.view setFrame:containerController.view.frame];// 很重要

팝오버의 너비는 최대 600입니다. 또한 _imagePicker는 각 presentsPopoverFromRect 전에 한 번 초기화되어야 합니다. 그렇지 않으면 표시 위치가 올바르지 않게 됩니다.
2. 업로드된 파일의 중국어 파일 이름이 왜곡되는 문제
iOS 클라이언트에서 URL 인코딩으로 파일 이름을 인코딩한 후 서버에서 URL 디코딩을 사용하여 디코딩합니다.
클라이언트:

NSStringEncodingenc=NSUTF8StringEncoding;
[request setData:datawithFileName [filename stringByAddingPercentEscapesUsingEncoding:enc]
andContentType:@"application/octet-stream" forKey:key];

서버:

String filename=request.getParameter(“upload_file”);
filename=URLDecode.decode(s,”utf-8”);

3. Mac 64비트 장치
때때로 SVN에서 프로젝트를 업데이트한 후 Scheme이 Mac으로 표시됩니다. 64비트 장치이며 프로그램 실행을 허용하지 않습니다. 이때 Target의 배포 타겟(시뮬레이터 또는 디버깅 장치로 설정)만 재설정하면 됩니다.
4. 디버거의 NSLog를 제거합니다.
컴파일 매개변수 Optimize Level은 버전에 따라 설정됩니다. 예를 들어 디버그 버전은 없음이고 릴리스 버전은 가장 빠르고 가장 작습니다. 이러한 방식으로 다음 매개변수를 기반으로 NSLog 함수를 재정의할 수 있습니다:

#ifndef __OPTIMIZE__
#define NSLog(...)NSLog(__VA_ARGS__)
#else
#define NSLog(...) {}
#endif

5. 경고: 함수에 대한 이전 프로토타입이 없습니다.
c 사양에 따르면 함수에 매개변수가 없는 경우, 함수 매개변수로 void를 사용합니다.
함수 선언에는 "void functionA();" 대신 "void functionA(void);"를 사용해야 합니다.
6. 배열 정렬
방법 1:

- (NSComparisonResult)compare:(Person *)otherObject {
return [self.birthDatecompare:otherObject.birthDate];
}
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];

방법 2 :

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc]initWithKey:@"birthDate"
ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];

방법 3(10.6+):

NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingComparator:^(id a, id b) {
NSDate *first =[(Person*)a birthDate];
NSDate *second =[(Person*)b birthDate];
return [firstcompare:second];
}];

7. Xcode 4의 빌드 디렉터리는 어디에 있나요?
Xcode 4에는 많은 변화가 있었습니다. 빌드 디렉터리를 찾을 수 없으며 제품 파일 그룹도 찾을 수 없습니다. 그렇다면 프로젝트가 컴파일된 후 생성된 실행 파일은 어디에 저장됩니까? 대답은 "{USERNAME}/Library/Developer/Xcode/DerivedData/{PROJECT_NAME_AND_RANDOM_CRAP}/Build/Products/{BUILD_TYPE}/{PROJECT_NAME}.app" 디렉터리입니다.
8. 경고: 파일 처리 규칙이 없습니다
Xcode는 모든 파일 형식을 감지하려고 합니다. 파일이 "소스 파일" 유형(예: .js 파일)이라고 생각되면 항상 해당 파일을 소스 컴파일에 추가하고 컴파일하려고 시도합니다. 이 경고에 대한 해결책은 해당 파일을 빌드 단계의 컴파일 소스에서 번들 리소스 복사로 이동하는 것입니다.
9. 경고: 'initWithFrame:reuseIdentifier:'는 더 이상 사용되지 않습니다.
이 메서드는 후속 버전에서 폐기됩니다.
- initWithStyle:reuseIdentifier:
를 사용하세요. 10. itms-services가 작동하지 않습니다.
itms-services는 Apple/iphone에서 특수 단어로 인식되어 프로비저닝 프로필에 지정된 인증서를 확인하고 설치합니다. 그것. .
이 .ipa 파일을 설치하기 전에 "ax.init.itunes.apple.com" 및 "ocsp.apple.com"에 연결될 profisioning 프로필을 확인하세요.
인트라넷을 사용하시는 경우, 위 주소로 접속이 가능한지 확인해주세요. 그렇지 않으면 OTA를 사용하여 앱을 설치할 수 없습니다. iOS 4.0 이상이 필요합니다.
참고: 위 주소에 액세스할 수 없어도 설치에는 영향을 미치지 않습니다. 단, iOS는 런타임 시 위 주소를 통해 인증서의 적법성 여부를 확인합니다. 설치가 적법하다면 iOS는 확인 결과를 캐시합니다(7일).

위 내용은 iOS 개발질문(1) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.