본문 바로가기

분류 전체보기

SNS에 대한 사용자 인식 조사 보고서 - 트위터는 30대, 싸이는 20대, 블로그/카페 40대로 나타나... DMC 리포트에서 나온 'SNS에 대한 사용자 인식 조사 보고서'입니다. 표본이 약 1,000명이 넘으니 참고할만 것 같습니다. 단, 온라인 서베이 이기 때문에 표본이 일반 설문조사와는 좀 다릅니다. 배너를 클릭할 정도로 온라인 트렌드가 꽤 익숙한 사람들이 답변할 가능성이 높다는 점이죠. 실생활에서 느끼는 통계수치 수준과는 Gap이 있습니다. 주로 기억에 남는 부분 아래 3가지 정도. 한번 정도 되뇌길 필요가 있습니다. 1. 잠재적으로 주목을 받는 플랫폼은 트위터 2. 현재 사용하고 SNS 비율 : 싸이월드>블로그>카페>트위터>미투>페이스북>카카오>네이트 커넥트 3. 싸이월드-20대, 트위터-30대, 블로그/카페-40대에서 높은 선호율 보여  SNS라는 것이 사실 플랫폼이기 때문에 사람 본연의 관계를 .. 더보기
tableView 의 클래스와 프로토콜 이해 테이블을 사용자 편의에 맞게 사용하려면 다음 클래스와 프로토콜을 이해해야 한다. UITableView : 테이블 뷰 자체를 의미하는 클래스이다. 테이블을 생성하고, 스타일과 모양을 결정한다. UITableViewDataSource : 데이터 소스 델리게이트 이며 테이블에 보여줄 데이터를 관리한다. 화면에 표시될 셀 뷰 객체를 리턴하고, 테이블에 섹션이 몇 개 있는지, 각 섹션에는 몇 개의 항목이 있는 지 등을 이 프로토콜(컴퓨터간에 정보를 주고받을 때의 통신방법에 대한 규칙과 약속)의 매서드를 호출해서 알아낸다. UITableViewDelegate : 각 행의 높이는 얼마로 할지, 들여쓰기를 얼마로 할지, 또한 셀이 선택되었을 때 무슨 일을 해야 하는 지 등을 결정할 수 있다. UITableViewCel.. 더보기
UITableViewDataSource 프로토콜의 주요 메서드 tableView:cellForRowAtIndexPath - 셀에 해당하는 뷰를 요청한다. UITableViewCell 을 상속받는 객체를 리턴해야 한다. (보통 UITableViewCell 을 그냥 사용) numberOfSectionsInTableView - 테이블 뷰의 섹션이 모두 몇 개인지를 알려줘야 한다. ( 1 또는 섹션의 수 만큼) 예문) -(NSInteger)numberOfsectionsInTableView:(UITableView *) tableView{ return [self.history count]; } tableView:numberOfRowsInSection - 섹션에 셀이 모두 몇 개 존재하는 지를 묻는다. 전체 항목의 개수를 리턴 (아마 numberOfSectionInTableVi.. 더보기
프로퍼티의 retain 속성 프로퍼티의 retain 속성은 setter, 즉 해당 값을 새로운 값으로 변경할 때의 행동을 결정하는 중요한 키워드 이다. self.history = AA; 구문은 다음과 같이 처리된다. [history release]; history = [AA retain]; 즉 어떤 객체(AA)를 이 속성 값으로 설정하면 이 객체에 retain 을 호출해서 가지고 있겠다는 의미가 된다. 객체의 값을 다룰 때 보통 이 속성을 사용합니다. 세터를 생성할 때, 컴파일러는 전달된 객체는 리테인하고, 기존에 갖고 있는 객체는 릴리스 합니다. 더보기
Lazy loading 기법 어떤 속성(프로퍼티)을 얻으려고 할 때 (getter 가 호촐될 때) 같은 이름의 속성 메서드가 호출된다. 만약 현재 값이 nil 이면 새로운 배열을 생성한다. if(history == nil){ NSArray *may = [NSArray arrayWithObjects:~ } history = [[NSArray arrayWithObjects:mmarch,april,may] retain]; 이와 같은 방식을 게으른 로딩(Lazy loading) 이라고 한다. 즉 처음에는 nil 값을 가지고 있다가 누군가가 사용하려고 하는 시점이 되어서야 뒤늦게 객체를 생성하는 방법이다. 마찮가지로 뷰 컨트롤러가 메모리 경고를 받아서 뷰를 언로드하게 될 때는 history에 nil 을 설정하여 배열 객체를 간단히 해제할 수.. 더보기
UITableViewCell 객체의 생성과 초기화에 대한 방법(뷰 재활용 개념) static NSString = kCellIDentifier = @"OilViewCell"; //여기 kCellIdentifier 서 'k' 란 상수는 단지 이름을 붙이는 관례임 (애플에서) 테이블 뷰는 화면 내용을 그리기 위해서 테이블 각 행에 해당하는 테이블 뷰 셀(TableViewCell) 객체를 요청한다. UITableViewCell* cell = [tableView dequeuereusableCellWithIdentifier:kCellIdentifier]; 이 때 UITableViewCell 또는 이 클래스를 상속받는 객체를 리턴해줘야 하는 데 그 전에 고려할 부분이 하나 있다. 테이블 뷰는 화면에 표시할 모든 행에 대해서 UITableViewCell 객체를 요구하는데, 매번 UITableVie.. 더보기
UITableViewCell 의 악세사리 종류 셀에 악세사리를 설정하는 부분 cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 액세사리 종류 UITableViewCellAccessoryDetailDisclosureButton 해당 셀에만 해당하는 세부 동작을 실행시킬 때 사용한다. (예: 음성 메시지 재생들) [ > ] UITableViewCellAccessoryDisclosureIndicator 셀을 선택하면 계층 구조에서 다음 단계의 뷰로 전환된다는 표시 [ √ ] UITableViewCellAccessoryCheckmark 항목이 선택되었음을 표시한다. 더보기
컴파일 경고 및 에러 메시지-예문 Property 'indexArray' requires the methd 'setIndexArray:' to be defined - use @synthesize, @dynamic or provide a method implementation --> interface 에서 멤버 객체로 만든 뒤에 @property 지시자를 지정했을 때 implementation 에서 @synthesize 를 해야 한다는 메시지 더보기
UITableViewCellDelegate 프로토콜의 중요 메소드 tableView:didSelectRowAtIndexPath: - 이 메소드는 테이블 뷰에서 특정행이 선택되었을 때 호출된다. 이 메소드는 선택에 대한 동작을 처리하기 위해 구현될 수 있다. 이런 동작에서는 UITableViewCellAccessoryCheckmark 를 이용한 체크 마크 같은 것이 있다. 선택에 대한 구현될 내용이 없다면 구현하지 않아도 된다. tableView:willSelectRowAtIndex:Path:: - 이 메소드는 특정행이 막 선택되려고 할 때 호출된다. 앞의 tableView:didSelectRowAtIndexPath: 메소드 보다 먼저 호출된다. 이 메소드는 사용자가 행을 터치하고 손가락을 들어 올릴 때까지 호출되지 않는다. 하지만 사용자가 손가락을 들어 올리면 바로 호.. 더보기
UITableViewCell 프로퍼티 이외에 이를 지원하는 프로퍼티와 메소드 contentView - 셀 내용이 나오는 뷰를 가리킨다. 읽기 전용 backgroundView - 셀의 배경 뷰를 가리킨다. 애플리케이션이 직접 설정할 수 있다. 배경 뷰는 UITableViewCell 전체 영역의 배경으로 사용된다. selectedBackgroundView - 셀이 선택되었을 때 사용될 배경 뷰를 가리킨다. 이것 역시 애플리케이션이 직접 설정할 수 있다. accessoryType 과 accessoryView - 액세사리 뷰의 타입을 지정한다. accessoryType 은 표준 액세사리 뷰의 종류를 지정하고, accessoryView 는 커스텀 액세사리 뷰를 지정한다. 이 두 개는 서로 배타적이다. 즉 accessoryView 를 지정하면 accessoryType 은 무시된다. sele.. 더보기