블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday

'Happydong'에 해당되는 글 1363건

  1. 2011.03.03 UIScrollView Delegate 확인
  2. 2011.03.02 EXC_BAD_ACCESS 등 알 수 없는 튕김현상 디버깅 방법
  3. 2011.02.28 부활 - 비밀



UIScrollView Delegate 메소드를 찾던중 좋은 자료가 있어, 이렇게 퍼왔다^^

출저는 아래와 같다. 


원본글 : http://www.ddandongne.com/ddanhome/zbuilder/?mid=iphone_sdk&search_target=tag&search_keyword=UIScrollView&document_srl=2234





스크린샷 2010-06-15 오후 2.30.31.png 


- 스크롤만 딸랑 실행될때.

2010-06-15 14:34:08.066 ScrollTest[6591:207] 스크롤이 시작전에 scrollViewWillBeginDragging
2010-06-15 14:34:08.066 ScrollTest[6591:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:34:08.082 ScrollTest[6591:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:34:08.204 ScrollTest[6591:207] 스크롤이 끝났을때 - scrollViewDidEndDragging


- 스크롤후 서서히 멈출때.

2010-06-15 14:35:27.444 ScrollTest[6591:207] 스크롤이 시작전에 scrollViewWillBeginDragging
2010-06-15 14:35:27.445 ScrollTest[6591:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:35:27.461 ScrollTest[6591:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:35:27.573 ScrollTest[6591:207] 스크롤이 끝났을때 - scrollViewDidEndDragging

2010-06-15 14:35:27.574 ScrollTest[6591:207] scrollViewWillBeginDecelerating
2010-06-15 14:35:27.591 ScrollTest[6591:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:35:27.608 ScrollTest[6591:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:35:28.975 ScrollTest[6591:207] 스크롤이 끝난후, 서서히 속도가 줄며  스크롤뷰가 완전히 멈췄을때 발생 -scrollViewDidEndDecelerating


- top영역을 누를때

2010-06-15 14:46:10.798 ScrollTest[8583:207] scrollViewShouldScrollToTop
2010-06-15 14:46:10.816 ScrollTest[8583:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:46:10.832 ScrollTest[8583:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:46:11.100 ScrollTest[8583:207] TOP영역으로 스크롤이 완료 되었을때 실행. scrollViewDidScrollToTop


- 줌인/줌아웃 발생시

2010-06-15 14:42:47.507 ScrollTest[8583:207] zooming 될때 - viewForZoomingInScrollView
2010-06-15 14:42:56.029 ScrollTest[8583:207] zooming 될때 - viewForZoomingInScrollView
2010-06-15 14:42:56.033 ScrollTest[8583:207]  스크롤이 발생할때 scrollViewDidScroll
2010-06-15 14:42:56.054 ScrollTest[8583:207] zooming 될때 - viewForZoomingInScrollView
2010-06-15 14:42:56.055 ScrollTest[8583:207] zooming 될때 - viewForZoomingInScrollView
2010-06-15 14:42:57.842 ScrollTest[8583:207] 줌인/줌아웃이 끝날때 scrollViewDidEndZooming
2010-06-15 14:42:57.842 ScrollTest[8583:207] zooming 될때 - viewForZoomingInScrollView
2010-06-15 14:42:57.843 ScrollTest[8583:207] zooming 될때 - viewForZoomingInScrollView
2010-06-15 14:42:57.844 ScrollTest[8583:207]  스크롤이 발생할때 scrollViewDidScroll


소스

001.#import "ScrollTestViewController.h"
002.#import "testView.h"
003. 
004.@implementation ScrollTestViewController
005. 
006.- (void)loadView
007.{
008.[super loadView];
009. 
010.// 스크롤 생성하기.
011.scrollview            = [[UIScrollView alloc] initWithFrame:self.view.bounds];
012.[self.view addSubview:scrollview];
013.testview            = [[testView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)];
014.[scrollview addSubview:testview];
015.[scrollview setContentSize:testview.frame.size];   
016.[scrollview setDelegate:self];       
017.// top 영역을 눌렀을때 이벤트를 발생시킬것인가? scrollViewShouldScrollToTop메소드가 실행됨
018.scrollview.scrollsToTop    =YES;
019.// 줌처리될때 min, max값.
020.[scrollview setMinimumZoomScale:0.1];   
021.[scrollview setMaximumZoomScale:50];   
022. 
023.// 테스트를 위한 변수 초기화 하기.
024.offset                = CGPointMake(0,0);
025. 
026.[scrollview setZoomScale:2];
027.screenScale        = scrollview.zoomScale;
028.[scrollview setContentOffset : CGPointMake(100, 0) animated:YES];
029.}
030. 
031. 
032. 
033.#pragma mark -
034.#pragma mark UIScrollViewDelegate
035. 
036.// Decelerating이 시작될때.
037.- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
038.{
039.NSLog(@"scrollViewWillBeginDecelerating");
040.}
041. 
042.// 스크롤이 종료된 후, 서서히 속도가 줄며 스크롤이 완전히 멈췄을때
043.- (void)scrollViewDidEndDecelerating:(UIScrollView *)_scrollView
044.{
045.NSLog(@"스크롤이 끝난후, 서서히 속도가 줄며  스크롤뷰가 완전히 멈췄을때 발생 -scrollViewDidEndDecelerating");
046.offset.x = _scrollView.contentOffset.x/screenScale;
047.offset.y = _scrollView.contentOffset.y/screenScale;
048. 
049.NSLog(@"scrollViewDidEndDecelerating %f, %f ", _scrollView.contentOffset.x, _scrollView.contentOffset.y);
050.NSLog(@"scrollViewDidEndDecelerating offset %f, %f ", offset.x, offset.y);
051.}
052. 
053.// 스크롤이 종료되었을때( 딱, 마우스를 띄었을때)
054.- (void)scrollViewDidEndDragging:(UIScrollView *)_scrollView
055.willDecelerate:(BOOL)decelerate
056.{
057.NSLog(@"스크롤이 끝났을때 - scrollViewDidEndDragging");
058.offset.x = _scrollView.contentOffset.x/screenScale;
059.offset.y = _scrollView.contentOffset.y/screenScale;
060. 
061.NSLog(@"scrollViewDidEndDragging %f, %f ", _scrollView.contentOffset.x, _scrollView.contentOffset.y);
062.NSLog(@"scrollViewDidEndDragging offset %f, %f ", offset.x, offset.y);
063.}
064. 
065. 
066. 
067.// 줌인/줌아웃 처리하기.
068.- (void)scrollViewDidEndZooming:(UIScrollView *)_scrollView
069.withView:(UIView *)view atScale:(float)scale
070.{
071.NSLog(@"줌인/줌아웃이 끝날때 scrollViewDidEndZooming");
072.NSLog(@"scale ----- %f ", scale);
073.[scrollview setZoomScale:scale+0.01 animated:NO];
074.[scrollview setZoomScale:scale animated:NO];
075.screenScale = scale;   
076. 
077. 
078.offset.x = _scrollView.contentOffset.x/screenScale;
079.offset.y = _scrollView.contentOffset.y/screenScale;
080. 
081.//NSLog(@"scrollViewDidEndZooming offset %f %f ", offset.x, offset.y);
082.}
083. 
084.// scrollview setContentOffset :animated : YES에 의해서 스크롤 애니메이션이 끝난 경우 발생
085.// 사용자가 드래그에 의해서 애니메이션이 발생하는 경우 발생하지 않음.
086.- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
087.{
088.//[scrollview setContentOffset : CGPointMake(100, 0) animated:YES];
089.NSLog(@"scrollview setContentOffset :animated : YES에 의해서 스크롤 애니메이션이 끝난 경우 발생");
090.NSLog(@"scrollViewDidEndScrollingAnimation");
091.}
092. 
093. 
094. 
095. 
096. 
097.// zooming 될때. 스크롤 시키는 뷰를 넘겨줘야 함.
098.- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
099.{
100.NSLog(@"zooming 될때 - viewForZoomingInScrollView");
101.UIView *view = nil;
102.if (scrollView == scrollview) {
103.view = testview;
104.}
105.return view;
106.}
107. 
108.- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
109.{
110.NSLog(@"## - scrollViewWillBeginZooming");
111.}
112. 
113.//
114.- (void)scrollViewDidScroll:(UIScrollView *)scrollView
115.{
116.NSLog(@" 스크롤이 발생할때 scrollViewDidScroll");
117.}
118. 
119. 
120. 
121.// TOP 영역을 눌렀을때 실행. yes인 경우 자동으로탑영역으로 스크롤 됨.
122.- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
123.{
124.NSLog(@"scrollViewShouldScrollToTop");
125. 
126.return YES;
127.}
128. 
129.// TOP영역으로 스크롤이 완료 되었을때 실행.
130.- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
131.{
132.NSLog(@"TOP영역으로 스크롤이 완료 되었을때 실행. scrollViewDidScrollToTop");
133.}
134. 
135. 
136.- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
137.{
138.NSLog(@"스크롤이 시작전에 scrollViewWillBeginDragging");
139.}
140. 
141. 
142. 
143.- (void)dealloc
144.{
145.[super dealloc];
146.}
147.@end

Posted by happydong
, |




디버딩중에 알수 없는 "EXC_BAD_ACCESS" 에러가 떠서 구글 검색해서 알아 낸 방법이다. 유용한 정보 이여서 내용을 복사해와서 적어 놓았다.(내가 알아 보기 위해서^^)
원본 출처는 마지막 줄에 적어 놓았다. 




아이폰 개발을 하다보면, 디버깅 상태에서도 그냥 띡하니 EXC_BAD_ACCESS 한 마디만 툭 내뱉고 어플리케이션이 종료되어 버리거나 하는 경우를 종종 볼 수 있다.

윈도우에서 어플리케이션을 개발해왔던터라 윈도우에서 개발할때는 보통 개발툴이 이미 해제된 메모리 주소를 가진 포인터에 접근하거나 기타 오류 상황에서 상당부분 오류가 난 소스의 위치를 찝어주는데, Xcode에서는 떡하니 뭔가 나 죽어요...라고만하고 핑 종료되어버려서 당황스러웠다.
디버거 콘솔에 딱히 뭔가 참고할만한 정보도 별로 없이 죽는경우도 많다.

이런 경우 디버거 콘솔에 조금 더 자세한 정보를 출력하도록 할 수 있는데, 아래처럼 설정해주면 된다.

Group & Files 의 Excutables에서 선택을 해주고, 메인툴바에 Info 버튼을 클릭한다.


Arguments 페이지에 "Variables to be set in the environment" 부분에 아래 이미지처럼 NSZombieEnabled와  NSDebugEnabled를 추가하고 모두 값을  YES로 적어준다. 이렇게 해놓고 어플리케이션을 실행하면, 디버거 콘솔에 좀 더 자세한 정보가 출력된다.

아래는 NSZombieEnabled, NSDebugEnabled 가 없을 때 오류가 난 상황에서 디버거 콘솔 화면이다.

아래는 NSZombieEnabled, NSDebugEnabled를 추가한 후 위와 동일한 오류가 발생한 상황에서의 디버거 콘솔 화면이다.
오류는 NSData 객체가 메모리 해제된 후 다시 release가 되어서 발생한 오류이다. [NSConcreteData release]: message sent to deallocated instance 라고 NSData와 관련된 부분에서 release 메시지가 잘못 보내져서 오류가 나고 있음을 확인할 수 있다.


출처 : http://blog.xiles.net/360

참고 주소 :
http://coderslike.us/2009/05/05/finding-freeddeallocated-instances-of-objects/ 
http://www.cocoadev.co.kr/73 
Posted by happydong
, |

부활 - 비밀

MUSIC/Kpop / 2011. 2. 28. 12:27



부활 - [비밀] M.V. Full ver. (special vocal 박완규)


이번 음악도 정말 좋다!! 역시 부활!!


Posted by happydong
, |