[iOS] iOS8 AlertView 텍스트 상단 정렬 문제와 해결 방법

iOS8 AlertView 텍스트 정렬 문제 예전 iOS 앱을 유지보수하다 보면 UIAlertView를 사용한 오래된 코드에서, iOS8 업데이트 후 Alert 메시지 텍스트가 상단에 붙어 보이는 문제를 겪은 적이 있습니다. iOS7에서는 정상 가운데 정렬이었지만, iOS8에서 레이아웃 방식이 변경되면서 발생한 현상입니다. 해결은 매우 단순합니다. AlertView 제목(title)에 nil 대신 빈 문자열(“”)을 넣으면 텍스트가 다시 정상적으로 중앙 정렬됩니다. 1. 문제 원인 … 더 읽기

[iOS] iPhone에서 올바른 URL 인코딩 방법 (Objective-C & Swift 최신 정리)

[iOS] iPhone에서 URL 인코딩이 제대로 되지 않을 때 예전 iOS 앱 유지보수 중, 로그인 기능에서 비밀번호에 = 문자가 포함되면 정상적으로 서버에 전달되지 않는 문제가 있었습니다. 원인은 URL 인코딩에 사용하던 API가 특수문자를 완전하게 인코딩하지 않았기 때문입니다. 특히 예전 iOS 개발에서 많이 사용하던: [string stringByAddingPercentEscapesUsingEncoding:] 이 메서드는 다음과 같은 문제를 가지고 있습니다. 이미 deprecated 됨 / & … 더 읽기

[iOS] 화면 밝기를 강제로 최대값으로 변경 후 다시 복원하는 방법 (2025 최신 기준)

iOS에서 화면 밝기 변경 후 이전 밝기를 복원하기 편의점이나 매장 결제 시, 모바일 바코드를 직원에게 보여줄 때 화면을 자동으로 최대 밝기로 올렸다가 해당 화면이 종료되면 이전 밝기로 복원해달라는 요청을 많이 받습니다. 예전에는 Objective-C에서 UIScreen의 brightness를 직접 변경하는 방식으로 구현했고, 아직도 유지보수 중인 레거시 앱에서는 동일한 방식이 사용됩니다. 1. 예전 Objective-C (레거시 프로젝트 유지보수용) 헤더 파일에 … 더 읽기

[iOS] 옛날 아이폰5 해상도 대응 방식, 지금은 어떻게 해야 할까? (2025년 최신 기준)

[iOS] 아이폰5 해상도 대응 — 오래된 방식에서 현재 방식으로 iPhone 5가 처음 출시되던 시절(4인치, 1136×640), 많은 개발자들이 3.5인치(480×320) 기반 레이아웃에서 화면을 늘리기 위해 고생했습니다. 당시에는 Default-568h@2x.png를 추가하거나, nib 파일의 autoresizing mask를 조정하거나, 직접 [UIScreen mainScreen] bounds] 값을 비교하는 식으로 대응했습니다. 하지만 이 방식은 2025년 현재 개발 방식과는 완전히 다릅니다. iPhone 5는 이미 지원 종료된 디바이스이며, … 더 읽기

[iOS] UIAlertView didDismissWithButtonIndex 문제, 지금은 어떻게 해결할까? (UIAlertController 기준)

예전에 iOS 개발을 하셨던 분들은 UIAlertView와 그 델리게이트 메서드인 clickedButtonAtIndex:, didDismissWithButtonIndex: 때문에 한 번쯤은 고생해 보셨을 것입니다. 저 역시 Alert가 백그라운드 전환(Home 버튼)이나 다른 Alert와 얽히는 상황에서 델리게이트가 예상대로 호출되지 않아 며칠 동안 디버깅(삽질)을 했던 기억이 있습니다. 하지만 이제는 상황이 많이 달라졌습니다. UIAlertView는 iOS 8에서 이미 deprecated 되었고, iOS 13 이후로는 사실상 쓰지 않는 레거시 … 더 읽기