iOS 개발 질문 (9)
101. 컴파일 오류: ld: -lPods에 대한 라이브러리를 찾을 수 없습니다
이 오류는 프로젝트에서 cocoaPods를 사용할 때(보통 릴리스 중에) 발생합니다.
Pod 설치 후 cocoaPods가 새 작업 공간을 생성하기 때문입니다. 프로젝트를 닫았다가 다시 열어야 합니다. 문제가 해결되었습니다.
102. iOS 시간은 왜 항상 실제 시간보다 8시간 느린가요?
예를 들어 베이징 시간 "2014-4-4 22:00"(문자열)을 NSDate로 변환해야 합니다. 문자열을 NSDate로 변환하는 것은 일반적으로 NSDateFormatter를 통해 수행됩니다. iOS에서는 NSDate가 GMT 시간으로 저장되므로 NSDateFormatter는 문자열의 현재 시간대의 현지 시간을 자동으로 처리합니다. 즉, 변환된 베이징 시간(문자열 "2014-4-4 22:00")을 GMT로 변환합니다. 시간(" 2014-4-4 14:00"). 이 NSDate(longlong, 1970년 이후의 초 또는 밀리초 수)를 서버에 직접 전달하면 서버는 이 시간을 베이징 시간(실제로는 GMT 시간)으로 사용하므로 8시간의 시차가 발생합니다.
올바른 접근 방식은 이 NSDate를 기반으로 시차를 추가하는 것입니다. 시차를 계산하려면 현재 시간대를 알아야 합니다. [NSTimeZonesystemTimeZone]은 현재 시간대(동부 8개 구역)를 가져온 다음 secondFromGMTForDate: 메서드를 사용하여 이 시간대(동부 8개 구역)의 시차(초)를 가져올 수 있습니다. 코드는 다음과 같습니다.
NSDateFormatter* df=[NSDateFormatter new]; // [dfsetLocale:[NSLocale currentLocale]]; df.dateFormat=@"yyyy-MM-dd HH:mm"; NSDate* date=[dfdateFromString:@"2014-4-4 22:00"]; NSTimeZone *zone =[NSTimeZone systemTimeZone]; NSInteger interval = [zonesecondsFromGMTForDate: date]; NSDate *localeDate =[date dateByAddingTimeInterval:interval]; NSLog(@"%@",localeDate);
103. UITableViewController에서 키보드 팝업 애니메이션을 비활성화합니다.
TableViewController에는 셀의 입력 컨트롤이 팝업될 때 키보드 팝업 애니메이션이 내장되어 있습니다. 소프트 키보드를 위로 올리면 tableView가 자동으로 위로 스크롤됩니다. 하지만 이 기능은 때때로 입력 컨트롤이 보이지 않는 곳으로 스크롤되기 때문에 큰 문제를 일으킬 수 있습니다. 프레임워크 코드를 수정할 수 없으므로 이 경우 TableViewController(하위 클래스화) 사용을 포기하고 대신 일반 UIViewController+UITableView를 사용해야 합니다. 그러나 때로는 TableViewContrller를 사용해야 할 때도 있습니다. 예를 들어 정적 셀을 사용하려는 경우 다음 방법을 통해 문제를 해결할 수 있습니다. 상위 클래스의 viewWillAppear 동작을 비활성화하려면 UITableViewController 하위 클래스의 viewWillAppear 메서드를 재정의하세요. 즉, [superviewWillAppear:animated]:
-(void)viewWillAppear:(BOOL)animated{ // Override super method with don'tcall [super viewWillApper] }
104를 호출하지 마십시오. 언제 NSCache를 사용해야 합니까?
NSCache는 메모리 부족에 따라 캐시 개체 중 하나를 자동으로 해제합니다(예: 뷰가 파괴되었거나 캐시된 개체가 너무 많습니다). 따라서 NSCache에 의해 캐시된 객체는 필요할 때 네트워크에서 다운로드할 수 있는 데이터와 같이 재구축 가능해야 합니다. 그렇지 않으면 NSCache를 사용하면 안 됩니다. 개체는 어느 시점에서 파괴될 것입니다.
따라서 NSCache를 사용할 때 검색된 객체가 캐시에 없으면 주의해야 합니다.
-(CachedObject)getCachedObject:(id)key{ id* obj=[NSCacheObjectobjectForKey:key]; if (cb==nil) { obj=[[CachedObjectalloc]init]; // Recreate cached object …… } return obj; }
105. >문제 설명:
디버깅할 때 다음 오류가 발생합니다(디버깅할 때는 정상일 수 있음):
ld: -lPods에 대한 라이브러리를 찾을 수 없습니다
문제는 Xcode5.x가 이제 종속 아키텍처를 감지한다는 것입니다. 프로젝트 및 해당 설정은 기본 프로젝트와 일치해야 합니다. 그렇지 않으면 종속 프로젝트가 거부됩니다(즉, 컴파일되지 않습니다).
해결책:
Pod 프로젝트의 모든 대상에서 기본 프로젝트와 일치하도록 아키텍처를 설정합니다.
106. 정적 라이브러리가 지원하는 아키텍처를 확인하는 방법
"lipo -info static library file" 명령을 사용하세요. 예:
lipo -info Unrar4iOS
그러면 터미널에 다음과 같이 표시됩니다. :
Fat 파일의 아키텍처: Unrar4iOS는 armv7 armv6 i386
107입니다. 특정 정적 라이브러리를 프로젝트에 도입하면 아카이브에서 "Undefound Symbols for Architecture armv7s/arm64" 오류가 발생합니다.
질문 105에서 언급한 바와 같이 . 105번 문제의 솔루션을 사용하는 것 외에도 또 다른 해결 방법이 있습니다.
먼저 정적 라이브러리의 아키텍처를 확인하세요(질문 106 참조). 그런 다음 정적 라이브러리의 아키텍처를 지원하도록 구성표를 수정합니다. 그런 다음 Buid 설정에서 Build Active ArchitectureOnly를 수정하고(선택한 아키텍처에 대해서만 컴파일) 값을 예로 변경합니다. 그런 다음 컴파일하십시오.
108. Autolayout에서 UITableView의 높이가 올바르지 않습니다.
Autolayout에서 탐색 모음이 있는 경우 뷰의 UITableView가 제약 조건에 의해 제한되고 탐색 없는 높이에 대한 제약으로 런타임 높이가 재설정됩니다. 술집. 이때 제약조건의 영향을 제거하기 위해 viewDidLayoutSubviews 메소드를 구현해야 합니다:
- (void)viewDidLayoutSubviews { _table.frame=CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height); }
탐색이 A 뷰 -->B 뷰라고 가정합니다.
뷰 B의 돌아가기 버튼 제목을 변경하여 뷰 A로 돌아가려면 뷰 A에서 다음 코드를 사용하세요.
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:nil]; B视图不用做任何操作。
NSNull입니다. 이 개체를 인쇄할 수 있으며(po 명령 또는 NSLog 사용) 인쇄된 결과는 "(null)"(nil 개체) 대신 " 以上就是iOS 开发百问(9)的内容,更多相关内容请关注PHP中文网(www.php.cn)!
OCC 컬렉션 개체는 null 값(nil) 삽입을 허용하지 않고 NSNull이 nil이 아니기 때문에 NSNull 개체는 컬렉션이 비어 있음(목록의 끝을 나타냄)을 나타내는 데 사용됩니다. 또한 nil과 달리 NSNull에 메시지를 보내면 예외가 발생합니다.
NSNull에는 유일한 메소드가 있습니다: [NSNull null] 이를 사용하여 객체가 NSNull인지 여부를 테스트할 수 있습니다: BOOL isNSNull(id any){
return [any isEqual:[NSNullnull]];
}

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











연례 WWDC가 종료되었으며, iOS18은 의심할 여지 없이 모든 사람의 관심의 초점입니다. 현재 많은 아이폰 사용자들이 iOS18로의 업그레이드를 서두르고 있지만, 다양한 시스템 버그들이 사람들을 불편하게 만들고 있다. 일부 블로거는 "버그가 너무 많기 때문에" iOS18로 업그레이드할 때 주의해야 한다고 말했습니다. 해당 블로거는 iPhone이 메인 기기라면 첫 번째 버전에는 버그가 많기 때문에 iOS18로 업그레이드하지 않는 것이 좋다고 말했습니다. 그는 또한 현재 발생한 몇 가지 시스템 버그를 요약했습니다: 1. 아이콘 스타일 전환이 중단되어 아이콘이 표시되지 않습니다. 2. 손전등 너비 애니메이션이 종종 손실됩니다. 3. Douyin 앱이 동영상을 업로드할 수 없습니다. 4. WeChat 메시지 푸시 지연이 발생합니다. 10초. 5. 가끔 전화가 안되고 화면이 검게 나옵니다.

단서를 제출해주신 네티즌 Ji Yinkesi, xxx_x, 튀긴 토마토, Terrence, 매운 치킨 드럼스틱에게 감사드립니다! 7월 27일 뉴스에 따르면 Apple은 오늘 개발자를 위한 iOS/iPadOS 18 베타 4 업데이트를 다시 출시했습니다. 내부 버전 번호가 22A5316j에서 22A5316k로 업그레이드되었습니다. 현재 두 베타 4 버전 업데이트의 차이점은 불분명합니다. 등록된 개발자는 "설정" 앱을 열고 "소프트웨어 업데이트" 섹션에 들어가서 "베타 업데이트" 옵션을 클릭한 다음 iOS18/iPadOS18 개발자 베타 설정을 전환하여 베타 버전을 선택할 수 있습니다. 베타 버전을 다운로드하고 설치하려면 개발자 계정과 연결된 Apple ID가 필요합니다. 7월 24일 iO에 보고됨

7월 31일 뉴스에 따르면, Apple은 어제(30일) 보도 자료를 통해 Swift 프로그래밍 언어에서 동형 암호화를 가능하게 하는 새로운 오픈 소스 Swift 패키지(swift-homomorphic-encryption)의 출시를 발표했습니다. 참고: HE(동형암호)는 암호문의 동형연산 특성을 만족하는 암호화 알고리즘을 의미합니다. 즉, 데이터를 동형암호화한 후 암호문에 대해 특정 계산을 수행하고, 얻은 암호문 계산 결과를 동시에 처리합니다. 상태 암호 해독 후의 일반 텍스트는 일반 텍스트 데이터에 대해 동일한 계산을 직접 수행하여 데이터의 "보이지 않음"을 달성하는 것과 같습니다. 동형암호 기술은 암호화되지 않은 기본 데이터를 연산 프로세스에 유출하지 않고 암호화된 데이터를 계산할 수 있습니다.

업데이트: Saunders Tech는 EU 외부의 iPad에 Fortnite 및 Epic Games Store를 설치하는 방법을 설명하는 튜토리얼을 YouTube 채널(아래에 포함된 동영상)에 업로드했습니다. 그러나 프로세스에는 특정 베타 버전의 iO가 필요할 뿐만 아니라

6월 1일 뉴스에 따르면, 기술 매체인 AppleInsider는 오늘 블로그 게시물을 게재하여 Apple이 iOS18 시스템에서 "Freeform" 애플리케이션 확장을 위한 "Scenes"의 새로운 탐색 기능을 출시하고 개체 정렬을 위한 새로운 옵션을 추가할 것이라고 밝혔습니다. "Wubianji" 애플리케이션 소개 먼저 "Wubianji" 애플리케이션을 간략하게 소개하겠습니다. 이 애플리케이션은 2022년에 출시될 예정이며 현재 iOS, iPadOS, macOS15 및 VisionOS 버전이 출시되었습니다. Apple의 공식 소개는 다음과 같습니다. "Boundless Notes"는 영감을 현실로 바꾸는 훌륭한 도구입니다. 거의 모든 파일 형식을 지원하는 유연한 캔버스에서 프로젝트를 스케치하고, 무드 보드를 디자인하고, 브레인스토밍을 시작하세요. iCloud를 사용하면 모든 보드를

[업그레이드 튜토리얼로 바로 이동하려면 여기를 클릭하세요] 5월 8일 뉴스에 따르면 Apple은 오늘 iPhone 사용자에게 iOS17.5RC 업데이트(내부 버전 번호: 21F79)를 푸시했습니다. 이번 업데이트는 마지막 릴리스로부터 70일이 남았습니다. iOS/iPadOS/watchOS/macOS 개발 버전과 공개 베타 버전을 어떻게 업그레이드하나요? iOS/iPadOS17 개발자 프리뷰 버전과 공개 베타 버전을 업그레이드하려면 친구가 공유한 경험을 참조할 수 있습니다. 경험 포스트 1||경험 포스트 2||경험 포스트 3||경험 포스트 4. iOS/iPadOS 16.4 Developer Preview Beta 1부터 Apple 개발자 프로그램에 등록해야 합니다. 등록 후 시스템 [설정] [소프트웨어 업데이트]를 열어 업그레이드 옵션을 확인하세요. 귀하의 iPhone 또는 IP를 참고하세요.

네티즌들 덕분에 매운 닭다리 버거, 소프트 미디어 새 친구 2092483, 필기 과거, DingHao, Xiaoxing_14, Wowotou Eat Big Kou, Feiying Q, 소프트 미디어 새 친구 2168428, Slades, Aaron212, Happy Little Hedgehog, Little Earl, Clues for the little 생선을 먹는 우유고양이! [업그레이드 튜토리얼로 바로 이동하려면 여기를 클릭하세요] 7월 24일 뉴스에 따르면 Apple은 오늘 iOS/iPadOS18 개발자 프리뷰 버전 Beta4 업데이트(내부 버전 번호: 22A5316j)를 iPhone 및 iPad 사용자에게 푸시했습니다. 마지막 릴리스. Carplay 배경화면 Apple은 밝은 모드와 어두운 모드를 포함하는 배경화면을 CarPlay에 추가했습니다. 배경화면 스타일은 iPhone과 유사합니다.

실용적인 공유... Apple이 계속해서 새로운 iOS 버전을 출시함에 따라 많은 iPhone 사용자는 시스템 업그레이드 여부를 선택해야 합니다. 최신 iOS17.5Beta3의 출시는 특히 iPhone12 사용자들에게 광범위한 관심을 불러일으켰습니다. 기존 iOS16을 버리고 새로운 베타 버전을 사용해 봐야 할지 여부는 논의할 가치가 있는 문제가 되었습니다. 이 기사에서는 실제 경험을 바탕으로 iPhone 12를 iOS 17.5 Beta 3으로 업그레이드하는 것의 장단점을 분석하여 대다수의 Apple 팬에게 참고 자료를 제공합니다. 우선, 베타 버전은 일반적으로 특정 위험을 감수할 의향이 있는 개발자나 얼리 어답터가 사용한다는 점을 분명히 해야 합니다. 즉, 공식 버전과 비교하여 베타 버전에는 다음이 포함될 수 있습니다.
