레이블이 xcode인 게시물을 표시합니다. 모든 게시물 표시
레이블이 xcode인 게시물을 표시합니다. 모든 게시물 표시

2018년 1월 16일 화요일

XCode에서 iPhone 개발 시 기기에 따라 조건부 컴파일 (Objective-C)

XCode에서 어플개발 시 타겟이 되는 디바이스는 macOS, iOS 디바이스, 시뮬레이터 등 여러 환경이 있다.
조건부 컴파일을 통해 기기에 따라 다른 헤더 파일을 including하거나, 시뮬레이터로 디버깅 시에만 log메시지를 출력하고 실제 기기에선 log를 띄우지 않는 등의 처리가 가능하다.
이를 유용하게 사용하면 타겟 디바이스별로 소스코드를 따로 만들지 않아도 된다.

ex) iOS에서만 다르게 컴파일 하고싶을 때

#if TARGET_OS_IOS
    // iOS code
#else
    // Default code
#endif


TARGET_OS_OSX: macOS(OS X)일 때만 1이다
TARGET_OS_IOS:  iOS 기기 또는 iOS시뮬레이터일 때 1이다
TARGET_OS_SIMULATOR: iOS시뮬레이터일 때 1이다. (tvOS시뮬레이터, watchOS시뮬레이터일 때 포함)

타겟 시스템별 상수 테이블
http://sealiesoftware.com/blog/archive/2010/8/16/TargetConditionalsh.html


2016년 5월 26일 목요일

IBM의 Swift Sandbox (Beta)

IBM에서 새로 만든 PaaS (P = Platform) Bluemix 에서 Swift 언어의 샌드박스 환경을 제공 중.

디자인도 미려하다.

https://swiftlang.ng.bluemix.net/?cm_mmc=developerWorks-_-dWdevcenter-_-swift-_-lp#/repl

설치도 필요없고 브라우저만 있으면 가능. xcode가 없는 환경에서 돌려보기에 좋다.
화면 왼쪽에서 코드를 작성하고 실행 버튼을 누르면
오른쪽의 결과 화면에 실행결과가 바로 반영된다.

스위프트 문법 공부는 여기서 하면 될 듯.


2014년 10월 21일 화요일

Xcode 6.1 Update




OS X 10.10 Yosemite와 iOS 8.1 지원을 위해서 다시한번 버전업.
Swift 관련 기능들도 추가되었다.

이제 iOS개발자들은 Swift도 공부해야 하는 건가..

2014년 10월 6일 월요일

Xcode 6.0.1 Update 등장




OS X 10.9 Mavericks와 iOS 8.0 환경을 위한 업데이트
새로운 해상도를 위한 시뮬레이터 종류가 추가됨

하지만 아직은 자잘한 버그 때문에 안정화 된 것 같지는 않음

2014년 8월 13일 수요일

UITableView Delegate - willDisplayCell

UITableView에서 유용한 델리게이트 함수

특정 indexPath row의 cell 을 보여주기 전에 호출된다.


- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell
                                            forRowAtIndexPath:(NSIndexPath *)indexPath
{


}

2014년 6월 30일 월요일

iAd 광고 활성화 된 국가 목록

현재까지 iAd 광고 나오는 나라들

1. Australia
2. Canada
3. France
4. Germany
5. Hong Kong
6. Italy
7. Ireland
8. Japan
9. Mexico
10. New Zealand
11. Spain
12. Taiwan
13. United Kingdom
14. United States


2014년 4월 7일 월요일

[iOS] UIAlertView 사용하기

UIAlertView 간단한 사용 예제


UIAlertView는 UIAlertVIewDelegate 프로토콜을 따른다.
(헤더파일에 <UIAlertViewDelegate>를 포함시키지 않아도 작동된다.)
#1
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Question"
                                                       message:@"Do you want to build a snowman?"
                                                      delegate:self
                                             cancelButtonTitle:@"NO"    /* nil 로 지정할 경우 cancel button 없음 */
                                             otherButtonTitles:@"YES", nil];

    // alert창을 띄우는 method는 show이다.
    [alert show];



#2
// UIAlertView의 delegate method이다
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    // OK 버튼을 눌렀을 때 버튼Index가 1로 들어감
    if (buttonIndex == 1) {
        NSLog(@"Clicked YES");
    }
    else {
       
    }
}


예제 실행 화면



* 만약 하나의 ViewController 안에 alertview를 여러 개 사용해야 한다면
다음과 같이 각각의 alertview에 tag를 지정해주어 식별해야 한다.

alertA.tag = 101;
alertB.tag = 102;

...

// UIAlertView의 delegate method
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
   if ( alertView.tag == 101 ) {
       if (buttonIndex == 1) {
            NSLog(@"Alert A - YES");
        }
    }
    else if ( alertView.tag == 102 ) {   
       if (buttonIndex == 1) {
            NSLog(@"Alert B - YES");
        }
    }
    
}


<Result>

alertA 호출 + YES버튼 터치 시 :
  2014-04-08 15:48:50.902 AlertViewTest[3098:60b] Alert A - YES

alertB 호출 + YES버튼 터치 시 :
  2014-04-08 15:53:22.981 AlertViewTest[3106:60b] Alert B - YES

2014년 2월 3일 월요일

TableViewHeader에 버튼 여러 개 달린 커스텀 뷰 달기

UITableView의 헤더는 뷰의 커스터마이징이 가능하다. (UIKit, xib, storyboard 등으로 가능)

[FIRST][SECOND][THIRD] 버튼을 누르면 해당 버튼 조건에 맞추어 재정렬을 하거나 다른 (테이블)뷰를 보여주는 등의 커스터마이징을 구현하면 된다.

3개의 버튼을 만들었지만 2개로 구성해도 되고 4~5개를 만들어도 된다.


 -------- section header -------
 [FIRST] [SECOND] [THIRD]
=====================
            TableView Cell
 -------------------------------
            TableView Cell
 -------------------------------
                      ...



2014년 1월 18일 토요일

로그 찍을 때 유용한 NSStringFromCGRect()

XCODE 개발 시 CGRect 구조체 내용을 NSLog로 보고싶을 때 다음과 같은 코드를 사용하면 편리함.

NSLog(@"%@", NSStringFromCGRect( subview.frame ));

이 외에도 NSStringFrom 만 타이핑해봐도 인텔리센스 코드로 뜨는 목록에 유용한  함수가 많음.
(NSStringFrom~ 시리즈)

2014년 1월 13일 월요일

XCODE가 많이 느려졌을 때

Xcode4에서부터 작업을 하다보면 무지하게 느려질 때가 있다.
임시 파일이 원인인 것 같은데 삭제하면 속도가 빨라짐.

Xcode가 실행중이라면 우선 종료시킨다.

Xcode를 종료하고

1) 터미널 실행

2) 다음과 같이 명령어 입력
    find ./ -name "project.xcworkspace" | xargs rm - Rf


- xcworkspace를 삭제하여 느려졌던 속도를 빨라지게 해줌.
- 아직 발견된 문제(부작용) 없음.
- Xcode5에서도 효과있음.