본문 바로가기

iPhone

(8)
[iOS] NSString과 NSMutableString을 이용한 append 속도 비교 간단하게 A에서 z까지 문자열 결합 속도 테스트.. 약 60번 append 메소드가 실행된다. NSString의 stringByAppending~~과 NSMutableString의 append를 비교했다. NSString은 매번 객체를 생성하는 방식이므로 느릴것이다~라고 예상. -(void)testAppend1 { NSString *result = @""; NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate]; for (char c = 'A' ; c
[iOS] 한영이 섞인 XML 파싱시 한/영 분리 문제.. NSXMLParser NSXMLParser를 이용한 파싱에서 한글과 영어가 섞인 항목에서 한영 분리 현상이 발생하고 있다. Event-Driven 파싱을 할때 NSXMLParser의 겔리게이트 중 -(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 메소드를 이용한다. XML 문서가 아래와 같이 영문 + 한글 형식이면 abc가나다 abc | 가나다 가 분리된다. 이상현상으로는 영문 + 한글 + 영문 형식이면 abc가나다def 의 경우에는 abc | 가나다def 로 분리된다. 한글 + 영문 + a 으로 시작하는 경우에는? 가나다abc라마바def 가나다abc라마바def 가 하나의 토큰으로 인식된다.
[iOS] UIBezierPath를 이용해서 태극 문양 그리기 iOS에 UIBezierPath를 연습해보고 있다. 태극 문양을 한번 그려보고 기록을 남긴다. 일단 인증~ 오전 1시 34분의 위용! 코드는 아래에~ UIBezierPath *path = [UIBezierPath bezierPath]; [[UIColor blueColor] setFill]; [path moveToPoint:CGPointMake(20, 220)]; [path addArcWithCenter:CGPointMake(90, 220) radius:70.0 startAngle:M_PI endAngle:M_PI*2 clockwise:NO]; [path addArcWithCenter:CGPointMake(230, 220) radius:70.0 startAngle:M_PI endAngle:M_PI*2 cl..
[iPhone] TabBar의 색상 바꾸기 보통 Tint를 이용해서 UI 컴포넌트의 색상을 변경할 수 있지만 TabBar에는 도통 색상을 변경하는 방법이 보이지 않는다. TabBar의 색상을 변경하는 방법을 찾아봤으니.. 아래의 왼쪽은 기본적인 TabBar의 모습이고 오른쪽은 색상을 입힌 TabBar의 모습니다. 아이디어는 간단하다. UITabBarController는 UIViewController의 일종이며, UIViewController가 최소 하나의 UIView와 연결되어 있듯이 UITabBarController도 UITabBar라는 UIView와 연결되어 있다. UITabBar에 색을 입힌 View를 추가하면 된다. 아래와 같은 코드면 위의 예제와 같은 효과를 얻을 수 있다. UIView *v = [[UIView alloc] initWit..
[iPhone] iOS4 개발툴 XCode 3.2.3 에서 3.1대 기기에 앱 올리기 iOS4와 함께 발표된 XCODE 3.2.3 에는 이전 기기를 선택하는 부분이 보이지 않는다. Legacy 지원에 인색한 잡스이지만, 너무 이른거 아닌가! 새로운 옵션 - iPhone OS Deployment Target 이라는 메뉴가 생기고, 2.X와 3.X 버전을 선택할 수 있다.
iPAD 개발을 위한 SDK 소식 아이패드에 관한 소식과 기대감?이 모락모락 피어오르는 가운데 애플에서 iPad SDK GM Seed(이름 참~ 길다)버전이 나왔다고 친절히 메일을 보내왔다. 베타2, 3을 쓰면서 IB(인터페이스 빌더)의 버그로 추정되는 현상으로 고생을 한 적이 있어서 그동안 나온 베타를 눈여겨보지는 않는데 이번에는 GM이라는 네이밍에 다운로드를 걸어넣고 릴리즈 노트와 차이점을 확인해본다. Beta6? 릴리즈 노트에 의하면 GM은 베타6이다. 3.1과 3.2의 차이점 iPAD에는 아이폰 OS 3.2로 동작을 한다. 물론 아이폰을 위한 3.2도 준비되어 있을 것이다. API Diff 문서를 통해서 어떤 기능이 달라지는지 확인을 해 본다. 폰트와 단락 스타일 CoreText라는 항목으로 아래의 헤더 파일들이 추가되어 있다. ..
Xcode 3.2 beta - Bug iPad가 발표되고 같이 나온 SDK. SDK를 테스트 해보고자 XCode 3.2(beta)를 설치했다. 별도의 xib로 만든 테이블 셀이 로딩이 안되는 문제가 발생하고 있다. 아마도 Interface Builder의 버그?인듯. Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (UITableViewCellContentView)' 그래서 XCode를 Uninstall 하고 이전 버전 3.1.2로 롤백~ 모든 에러가 나는 xib를 열어서 다시 저장하는 삽질을 ..
[IPhone] 테이블의 셀 가지고 놀기 테이블의 한 열을 선택하면 선택된 열은 다른 셀이 나오게 하는 방법이다. Table에 내용을 표시하기 위해서는 TableDataSource의 Delegation의 메소드를 작성해야 한다. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 이 메소드는 테이블의 각 셀을 반환하는 메소드이다. 여기서 테이블의 셀이 선택되었는지를 비교해야한다. 즉 인수로 넘어온 index와 테이블에 선택된 index가 같으면 선택되었을때의 셀을 반환하면 되고 아니면 보통의 셀을 반환하면 된다. if (indexPath == [tableView indexPathForSelectedRow]) { r..