다른 클래스 메소드 호출 sample.h#import @interface Sample : NSObject { }- (void) Test;@end sample.m #import "Sample.h" @implementation Sample - (void) Test { //메소드 구현}@end 호출하고자 하는 클래스 헤더파일에 "Sample.h" 를 임포트 한후 인스턴스를 선언한다.Sample *sample; 호출 메소드에서 다음과 같이 호출한다. sample = [[Sample alloc] init]; [sample Test];
iOS object-c 문자열 처리 NSString* str1 = @”Objective-C 2.0 Programming. “; NSString* str2 = @”xCode is Powerful. “; NSString* str3; NSString* strNum = @”7.7″; NSString* tmp; NSMutableString* mutableString;NSComparisonResult compareResult; NSRange range; // 빈 문자열 생성 str3 = [NSString string]; // 문자열로 새로운 문자열 생성 str3 = [NSString stringWithString:@"stringWithString"]; NSLog(@”%@”, str3);str3 = [[NSStrin..
이미지뷰, 일반뷰 사각 테두리 만들기 작년에 제작한 골프강좌 앱입니다.위에 골프장 이미지뷰를 사각 테두리로 지정하는 방법입니다. 1. 헤더파일에 #import 2. 적용부분에 아래 코드를 입력 IBOutlet UIImageView *image;image.layer.masksToBounds = YES; image.layer.cornerRadius = 10.0; image.layer.borderWidth = 2.0;image.layer.borderColor = [[UIColor grayColor] CGColor]; 코너 라디언 적용테두리 굵기테두리 색을 지정해 줄 수 있습니다.
인증서 관련된 오류 어제 있었던 일입니다.맥북에 프로젝트를 담아서 기기테스트를 하러 갔습니다.담당자들 아이폰에 프로젝트를 빌드하는 순간 인증서 오류가 나더군요키체인을 보니인증서가 유효하지 않음이라고 뜨더군요. 키체인이 만료되지는 않았습니다. 결국 테스트는 못하고 짜증이 밀려오는 상태로 카페에 들어가 맥북을 재시작했습니다.재시작을 하니 날짜와 시간 설정을 다시 하라는 팝업창이 뜨더군요맥북에 설정된 날짜 시간을 보니 2001년 1월 1일 시간도 2시간 정도 늦게 되어있더라고요설마 이것 때문에???하고 설정을 당일 날짜로 변경하고 키체인을 보니인증서가 유효함 멘붕 ㅠ ㅠ 머 이런 경우도 처음이네요 혹시 이와같은 인증서 오류가 나면 날짜 시간 설정을 확인해 보세요.아마 윈도우를 겸해서 쓰시는 분이 간혹 겪을 수..
뷰 호출 관련 메소드 // 메모리 상에 처음 로드되었을 때- (void) viewDidLoad; // 화면에 나타나기 직전- (void) viewWillAppear:(BOOL)animated; // 화면에 나타난 이후- (void) viewDidAppear:(BOOL)animated; // 화면에서 사라지기 직전- (void) viewWillDisappear:(BOOL)animated; // 화면에서 사라지고 나서- (void) viewDidDisappear:(BOOL)animated; // 메모리 상에서 삭제되기 전 iOS5 이상- (void) viewWillUnload; // 메모리 상에서 삭제될 때- (void) viewDidUnload;[출처] [Xcode 4.3] 2.2. 뷰 컨트롤러|작성자 바..
UDID 대체 방법 -> MAC 어드레스 얻기 올해 3월이었죠. 애플이 개인정보 유출을 막고자 UDID를 쓰는 앱에 대해 단계적으로 심사하겠다고 했습니다. 지금은 IOS 5.0 이상에서는 UDID를 추출하는 NSString *udid = [[UIDevice currentDevice] uniqueIdentifier]; 메소드를 쓰면 안된다고 하네요. 그래서 나온 대안 중, MAC 어드레스 값을 추출하는 방법입니다. 일종의 PC의 랜카드 고유번호(?)라고 하는데 아이폰에서는 네트워크 접속 이더넷카드 시리얼 넘버라고 보시면 되요. 구글에서 떠도는 소스는 3G와 WI-FI 환경에서 값이 다르게 추출된다고 하네요. 형식은 FF:FF:FF:FF:FF:FF 이런식으로 나와요 그 문제를 해결한 소스입니다. 저도 어디서..
일반 디스플레이, 레티나 디스플레이 구별하기 해상도 관련 이슈는 오래전에 발생했는데 이미지 문제가 컷죠. 3g와 4 이상의 기기에서 디자인 해상도를 모두 맞춰야 하는문제는 이미지 파일명에 @2x(레티나) 를 붙여서 모두 충족 시킬 수 있죠. 디자인이 아닌 기기를 식별하기 위해서는 기기의 해상도를 잡아내야 합니다. [[UIScreen mainScreen] scale]; NSLog(@" %f ", [[UIScreen mainScreen] scale]); 스케일을 따져보면 알 수 있습니다. 일반 디스플레이 1.0 레티나 디스플레이 2.0
iOS5 Automatic reference counting iOS5 부터 automatic reference counting (ARC) 를 지원하고 있는데요. retain, release, dealloc 를 쓸 수 없죠. 알아서 해주거든요. 좋은데, 가끔 iOS5 이전 버젼에서 개발한 프로젝트를 iOS5로 실행하거나 다른 소스를 쓸 때 retain, release, dealloc 때문에 고생하는 경우가 있습니다. 일일이 찾아서 지운적이 있는데, 이럴때 사용하는 방법입니다. 프로젝트 Build Settings에 가서 검색키워드로 auto를 치면 그림과 같이 검색이 됩니다.automatic reference counting이 보이시나요. YES로 바꿔줍니다. 그럼 retain, release, deallo..
커스텀 액션쉬트입니다. 액션쉬트에 이미지를 넣어보아요. UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"취소" destructiveButtonTitle:nil otherButtonTitles:@"메일 보내기", @"카카오톡 보내기", @"Twitter", @"Facebook", nil]; actionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent; //이미지 [[[actionSheet valueForKey:@"_buttons"] objectAtIndex:0] setImage:[UIImage imageNamed:..
앱에서 다른 앱을 호출시키는 방법입니다. 카카오링크 플랫폼과 비슷한 형식입니다. 뉴스앱 같은 경우 기사를 카카오톡 친구에게 기사제목과 함께 링크는 보내는 방법을 쓰고 있는데요. 카카오톡이 설치된 경우 바로 카카오톡 친구목록 페이지를 보여주고 기사를 전송하는 방법입니다. 카카오톡이 설치되지 않은 경우 앱스토어 다운로드 페이지로 이동하게 되어있죠. 앱 호출 방법 1. 호출을 당할앱 info.plist 파일을 열어서 URL Types를 추가하고 URL identifier에 값을 유일한 값을 입력합니다. 그리고 item0에 URL Schemes를 추가하여 url scheme에 연결될 스키마 이름을 넣습니다. 2. 호출하는 앱 SString *appUrl = @"kwongolf://"; //url scheme 값..
뷰 애니메이션 함수입니다. 팝업형식으로 뒤에서 앞으로 튀어나오는 형식이죠. IBOutlet UIView *cateView1; cateView1.frame = CGRectMake(0, 0, 0, 0); cateView1.transform = CGAffineTransformMakeScale(0.1, 0.1); [cateView1 setAlpha:0.0]; CGContextRef context = UIGraphicsGetCurrentContext(); [UIView beginAnimations:nil context:context]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:0.5]; [cateVi..
디바이스 테스트 도중 실행전에 다음과 같은 오류메세지가 뜨는 경우가 있다. Couldn't register com.yourcompany with the bootstrap server. Error: unknown error code. This generally means that another instance of this process was already running or is hung in the debugger. Program received signal: “SIGABRT”. 이럴 땐 아이폰을 재부팅 시키면 된다. 쉽다. 답은 디바이스 재부팅 Device Reboot
textview에 입력된 글 줄바꿈을 해봅시다.■ 코드로 작성 cell.lbltxt.text = @"① 다운 스윙을 잘할려면 먼저 타이밍을 잘 잡는것.\n\n② 스윙 톱의 모양을 그대로 끌고 내려 오는것.\n\n③ 허리 높이까지 와서는 오른팔굼치를 풀어 주게 되며 이때 손목 코킹도 서서히 풀어 주는것.\n\n④ 다운 스윙에서 머리가 따라 가서는 안되며 너무 서두르지 않는게 최대의 방법이다.\n \n 요걸로 하면 됩니다. ■ interface에서 직접 쓸 때 option + return(enter) 인터페이스 빌더에서 직접 입력할 때 단축키를 누르면 줄바꿈이 됩니다. 허나 실제로 글을 쓰고 엔터를 치면 줄바꿈이 안되더라고요. 저는 그냥 스페이스바 계속 눌러서 강제로 줄바꿈 합니다;;
테이블뷰 사용시 cell을 동적으로 추가하거나 삭제해야 하는 경우가 발생한다. 이럴 때 사용하는 소스코드 예를들어 cuscell *cus; //CustomCell UITableView *table; NSMutableArray *data; data = [NSMutableArray arrayWithObjects:@"Item 1", @"Item 2", nil]; 를 선언하고 테이블뷰에서 data의 값을 가져온다고 하자. cell 추가 [self.data addObject:@"New Item"]; [table beginUpdates]; NSArray *paths = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:0]]; [table inse..
//테이블뷰 섹션의 수 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 2; } //테이블뷰 Row의 갯수 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 1; } //테이블뷰 Row의 높이 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 50; } //테이블뷰 섹션 타이틀 지정 - (NSString *) tableView:(UITableView *)table..