Xcode6 / Swift - 동적으로 UILabel, Timer 생성

Programming/Swift 2014.06.04 22:06 Posted by 파란크리스마스

출처 : Swiftでアニメーションとタイマーを使ってみた
Swift for UIButton addTarget
viewDidLoad 와 viewWillAppear의 차이

ViewController.swift 최초 기본 코드

//
//  ViewController.swift
//  CreateLabel
//
//  Created by test on 2014. 6. 5..
//  Copyright (c) 2014년 test. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
                            
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
}

UILabel class내 전역변수로 추가

var label : UILabel = UILabel();

viewDidLoad 함수에 내용 추가

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //var label : UILabel = UILabel();
        label.text = "test";
        label.frame = CGRectMake(50, 50, 100, 50);
        self.view.addSubview(label);
    }

실행

Timer 생성

타이머를 추가해서 1초마다 내용이 수정되는 예제

완성된 코드

//
//  ViewController.swift
//  CreateLabel
//
//  Created by test on 2014. 6. 5..
//  Copyright (c) 2014년 test. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    
    var countNum = 0;
    
    var label : UILabel = UILabel();
                            
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //var label : UILabel = UILabel();
        label.text = "test";
        label.frame = CGRectMake(50, 50, 100, 50);
        self.view.addSubview(label);
        
        // 타이머 생성
        var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true);
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    // 1초마다 호출되는 함수
    func update() {
        label.text = String(countNum);
        countNum++;
    }

}

실행

신고

Xcode6 / Swift - Hello World !!!

Programming/Swift 2014.06.03 22:00 Posted by 파란크리스마스

출처 :Welcome to Swift
The Swift Programming Language
The Swift Programming Language(iTunes)
애플 새 개발언어 '스위프트' 이용 10개 팁

변수와 상수

상수 선언 - 키워드 let

let languageName = "Swift"
languageName = "Swift++"
// this is a compile-time error - languageName cannot be changed

변수 선언 - 키워드 var

var friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"
// friendlyWelcome is now "Bonjour!’

전역 로그 출력

print, println 함수 - 자바의 System.out.print, System.out.println 와 동일한 기능으로 xcode 의 output 창에 출력하는 함수 제공

println("This is a string")
// prints "This is a string

주석

한줄 주석 (Single-line) : forward-slashes (//)

// this is a comment

여러줄 주석 (multiline comments) : 주석 시작 (/*) 주석 끝 (*/)

/* this is also a comment,
but written over multiple lines */

- 작성중 -

Xcode6 설치

Xcode 실행

Create a new Xcode project 선택

Single View Application 선택

Language : Swift 선택

Label, Button Control 추가

Label Control 변수로 등록

Label 이름 등록

Button Touch Down 이벤트 추가

Button 이벤트 이름 등록

Hello World 출력

실행


신고

ipod touch 4th jailbreak 에서 디버깅 및 배포하기

OS/Mac 2014.04.16 13:19 Posted by 파란크리스마스

출처 : HOW TO INSTALL CRACKED APPS ON iOS 7+ AppSync for iPhone-5S, iPad-Air, iPad-mini 2,1
iOS Developer Program (IDP) 없이 아이폰 디바이스에 디버깅 및 배포하기 (How To Deploy/Debug on iPhone Without IDP) UPDATE: Xcode 5

AppSync 설치(iPod Touch)

하단에 [Manage] 선택 -> [Sources] 선택

상단우측의 [Edit] 버튼 선택

상단좌측의 [Add] 버튼 선택

http://repo.hackyouriphone.org 입력 후, [Add Source] 버튼 선택

상단우측의 [Done] 버튼 선택

AppSync 설치

  

인증서 생성 (Mac)

인증서 이름 : iPhone Developer

  • 인증서 이름은 iPhone Developer로 지정. 만일, 동일한 이름의 인증서가 이미 존재하고 있다면 삭제 후 진행하기를 권장.
    • 이름 : iPhone Developer
    • 신원 유형 : 자체 서명 루트 (Self signed Root)
    • 인증서 유형 : 코드 서명 ( Code Signing )
    • 기본값 덮어쓰기 체크

유효기간(일) 은 기본 365일로 설정되는데, 넉넉하게 설정.

이메일 주소: 항목을 지우고 진행.

생성 완료될 때까지 [계속] 버튼 선택하여 인증서 생성 완료.

Xcode.plist 파일 수정

SDKSettings.plist, info.plist 두개 파일의 수정 필요.

SDKSettings.plist 파일 수정

바로 수정이 되지 않으므로 바탕화면에 복사 후 수정후 파일을 덮어 쓴다.

경로 : /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk

수정내용

DefaultProperties의 CODE_SIGNING_REQUIREDENTITLEMENTS_REQUIRED Key의 Value를 YES에서 NO로 수정.

DictionaryKeyValue(Org)Value(Mod)
DefaultPropertiesCODE_SIGNING_REQUIREDYESNO
DefaultPropertiesENTITLEMENTS_REQUIREDYESNO

Info.plist 파일 수정



프로젝트 수정

[Build Phases] 텝 선택

[Editor] -> [Add Build Phase] -> [Add Run Script Build Phase] 메뉴 선택


 

export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; then /Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"; 
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi

[Use for Development] 버튼 선택

 

신고
TAG ios, Xcode

ios - xcode 초간단 예제

Programming/IOS 2012.09.12 23:59 Posted by 파란크리스마스

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

신고

iOS ffmpeg player (rtsp 플레이어)

Programming/IOS 2012.05.31 00:46 Posted by 파란크리스마스

ffmpeg 라이브러리를 이용해서 wowza서버를 사용하는 rtsp 플레이어를 제작해보았습니다.
소스는 iFrameExtractor 프로젝트에서 파일 오픈하는 부분을 rtsp 주소를 사용했고,
ffmpeg 라이브러리 경로를 따로 설정해서 컴파일 했습니다.

설치한 ffmpeg 라이브러리가 ios용으로 컴파일 되어 있어서
시뮬레이터에서는 테스트 할 수가 없네요.

iFrameExtractor 프로젝트는 ffmpeg 라이브러리만 사용했기 때문에 플레이는 되지만,
속도는 나오지 않습니다. OpenGL ES / SDL 라이브러리 이용해야 될 것 같네요.

출처

How can you pass YUV frames from FFmpeg to OpenGL ES?
TECH TUTORIAL ? HOW TO SETUP A SDL-READY XCODE4 PROJECT
CODEC_TYPE_VIDEO undefined
ffmpeg을 이용한 iOS 동영상 플레이어
<video> 태그를 이용하여 rstp 프로토콜의 스트리밍을 재생하고자 하고싶은데요...
Audio and Video HTML
myoutube or RTSP streaming support on chrome

소스 다운로드

jayrparro / iFrameExtractor

ffmpeg 라이브러리 경로 설정

오류 수정

CODEC_TYPE_VIDEO undefined 발생 한다면,
AVMEDIA_TYPE_VIDEO 로 수정

rtsp 주소 설정
iFrameExtractorAppDelegate.m

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
	//self.video = [[VideoFrameExtractor alloc] initWithVideo:[Utilities bundlePath:@"sophie.mov"]];
    //self.video = [[VideoFrameExtractor alloc] initWithVideo:[Utilities bundlePath:@"oh.mp4"]];
    self.video = [[VideoFrameExtractor alloc] initWithVideo:@"rtsp://192.168.0.13/vod/mp4:sample.mp4"];
	[video release];

	// set output image size
	video.outputWidth = 426;
	video.outputHeight = 320;
	
	// print some info about the video
	NSLog(@"video duration: %f",video.duration);
	NSLog(@"video size: %d x %d", video.sourceWidth, video.sourceHeight);
	
	// video images are landscape, so rotate image view 90 degrees
	[imageView setTransform:CGAffineTransformMakeRotation(M_PI/2)];
    [window makeKeyAndVisible];
}

YUV 데이터 -> RGB 데이터 소스
VideoFrameExtractor.m

-(void)convertFrameToRGB {	
	sws_scale (img_convert_ctx, pFrame->data, pFrame->linesize,
			   0, pCodecCtx->height,
			   picture.data, picture.linesize);	
}

실행


신고
TAG ffmpeg, ios, RTSP, Xcode

ffmpeg - iOS 컴파일

Programming/IOS 2012.05.30 00:02 Posted by 파란크리스마스

출처

iOS용 FFmpeg 빌드
[iPhone] ffmpeg 빌드하기
How to cross compile ffmpeg for iOS (iPhone and iPad)
Build m4, autoconf, automake, libtool on Mac OS X Lion
http://www.slideshare.net/hypermin/html5-video

make 커맨드 설치

pkg-config 설치

pkg-config 다운로드

gas-preprocessor 다운로드

gas-preprocessor 다운로드

build-essentials 스크립트 다운로드및 실행

설치되는 항목 m4, autoconf, automake, libtool

https://gist.github.com/1397146

- 디렉토리구조

$HOME
├ local
└ Builds
   └ build-essential
      ├ build-essential.sh
      └ src

- 실행

$ chmod 755 build-essential.sh
$ ./build-essential.sh

- 경로 추가 (~/.profile)

PATH=$PATH:/Users/자신의계정/local/bin

- 확인

압축풀기

- 다운로드

ffmpeg 다운로드

- 압축풀기

$ tar xvfz ffmpeg-0.8.11.tar.bz2

config.sh 파일

./configure --enable-cross-compile \
  --arch=arm \
  --target-os=darwin \
  --cc='/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2' \
  --as='./gas-preprocessor/gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2' \
  --cpu=cortex-a8 \
  --enable-pic \
  --disable-yasm \
  --sysroot='/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk' \
  --extra-cflags='-mfpu=neon -pipe -Os -gdwarf-2 -miphoneos-version-min=5.0' \
  --extra-ldflags='-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -miphoneos-version-min=5.0' \
  --disable-asm \
  --disable-doc \
  --disable-ffmpeg \
  --disable-ffplay \
  --disable-ffprobe \
  --disable-ffserver \
  --enable-avdevice \
  --disable-devices \
  --disable-filters \
  --disable-yasm \
  --enable-network \
  --enable-protocol=tcp \
  --enable-demuxer=rtsp \
  --enable-decoder=h264

$ ./config.sh

$ make

$ sudo make install

신고
TAG ffmpeg, ios, Xcode


 

티스토리 툴바