Category Archives: XCode

NSLog 에서 좀더 상세하게 찍기

By | 2011-04-08 11:17:09 | 0 Comment

로그를 찍을때 컴파일러에서 정의된 것들을 이용하면 좀더 상세하게 로그를 찍을 수 있다. NSLog(@”%s %d %s INFO\n===============================%@\n===============================\n, “, __FILE__, __LINE__, __PRETTY_FUNCTION__, dict) 이것은 내가 즐겨 쓰는 방식으로 NSDictionary 의 데이터를 찍을때 쓰는 방식이다. 로그는 아래와 같이 찍힌다. /Users/mars1/Documents/XCode/URoadApp/Classes/ServerObject.m 592 -[ServerObject addUserTools:IMAGE:] INFO ==============================={ response = { description = “\Uc131\Uacf5”; errcode = “”; func = setToolsData; service… Read More »

XCode 4 Uninstall 하기

By | 2010-11-26 13:21:54 | 2 Comments

XCode 3 때와 다른게 없네요.. 베타버전의 경우 XCode 3와 4의 설치경로가 틀리게 때문에.. 아래와 같이 터미널에서 실행하면 됩니다. 베타 : sudo /Xcode4/Library/uninstall-devtools –mode=all 정식 : sudo /Developer/Library/uninstall-devtools –mode=all 패스워드를 입력해 주시면 제거가 됩니다.~

iPhone Email 보내기..

By | 2010-01-20 08:40:23 | 0 Comment

어플리케이션을 종료하지 않고 MFMailComposeViewController 클래스를 통해서 메일을 보낼 수 있다. 콜백을 받으려면 받으려는 클래스에 MFMailComposeViewControllerDelegate 를 추가한다. MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init]; controller.mailComposeDelegate = self; [controller setSubject:@”제목입력”]; [controller setMessageBody:@”본문내용 입력” isHTML:YES]; [self presentModalViewController:controller animated:YES]; [controller release]; mailComposeDelegate 를 설정하였기 때문에 콜백을 받을 수 있다. – (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error; { if (result == MFMailComposeResultSent) {… Read More »

NSThread 백그라운드 쓰레드 돌리기

By | 2009-12-23 15:09:08 | 0 Comment

프로그래밍을 하다 보면 느끼겠지만 쓰레드는 필수이다. iPhone에서 백그라운드쓰레드를 돌려보자.. Objective-c 에서는 NSThread 라는 클래스가 있다. 일단 쓰레드 처리할 함수를 만든다. -(void) myTestThread:(id)anObject { NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init]; //이곳에 처리할 코드를 넣는다. [autoreleasepool release]; [NSThread exit]; } 그리고 쓰레드를 호출한다. [NSThread detachNewThreadSelector:@selector(myTestThread:) toTarget:self withObject:nil]; 간단~

UI객체의 TAG 활용..

By | 2009-12-22 12:06:01 | 0 Comment

프로그램을 개발하다 보면 디자인 형태에서가 아닌 런타임 상태에서 객체를 생성해야 하는 경우가 생긴다. 즉 몇개의 객체를 생성해야할지가 실행중 결정될때 이다.. 예를들어 버튼을 200개를 생성해야 하거나 또는 등록된 사람수 를 가져와서 사람 수 만큼 버튼을 생성해야할 때 등.. 윈도우라면 뭐 다양한 방법이 있을것이다. findwindow 등… iPhone 에서는 tag 라는 꼬리표 같은 변수가 있다.. – (void)viewDidLoad {… Read More »

xcode iphone base64 encode/decode

By | 2009-11-13 10:01:41 | 2 Comments

첨부파일을 다운로드 받고 import 후 아래와 같이 사용 1136870320.h NSString *sourceString = @”username:password”; NSLog(@”Original string: %@”, sourceString); NSData *sourceData = [sourceString dataUsingEncoding:NSUTF8StringEncoding]; NSString *base64EncodedString = [sourceData base64Encoding]; NSLog([NSString stringWithFormat:@”Encoded form: %@”, base64EncodedString]); NSData *decodedData = [NSData dataWithBase64EncodedString:base64EncodedString]; NSString *decodedString = [[[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding] autorelease]; NSLog([NSString stringWithFormat:@”Decoded again: %@”,decodedString]);

Objective-C Http request response

By | 2009-11-12 14:41:05 | 1 Comment

NSURL *url = [NSURL URLWithString:@”https://www.google.com/accounts/ClientLogin”]; NSMutableURLRequest *loginRequest = [NSMutableURLRequest requestWithURL:url]; [loginRequest setHTTPMethod:@”POST”]; [loginRequest addValue:@”Content-Type” forHTTPHeaderField:@”application/x-www-form-urlencoded”]; [loginRequest addValue:@”application/x-www-form-urlencoded” forHTTPHeaderField:@”Content-Type”]; NSString *requestBody = [[NSString alloc] initWithFormat:@”Email=%@&Passwd=%@&service=finance&source=%@”, @”mars”, @”1234″, [NSString stringWithFormat:@”%@%d”, @”ashlux-igFinance-1.0″]]; [loginRequest setHTTPBody:[requestBody dataUsingEncoding:NSASCIIStringEncoding]]; NSHTTPURLResponse *response = NULL; NSData *responseData = [NSURLConnection sendSynchronousRequest:loginRequest returningResponse:&response error:nil]; NSString *responseDataString = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]; NSLog(@”Response from Google: %@”, responseDataString);