본문 바로가기

전체 글380

디자인 패턴 - 싱글톤 패턴 예제 디자인 패턴 - 싱글톤 패턴 예제 CommonUtil.h #import @interface CommonUtil : NSObject{ } +(CommonUtil *)sharedObject; @property NSString * commonstring; @end CommonUtil.m #import "CommonUtil.h" @implementation CommonUtil + (CommonUtil *)sharedObject{ NSLog(@"sharedObject 호출 "); static CommonUtil *commonUtil = nil; /* dispatch_once_t는 dispatch_once가 실행되었는지 여부를 저장하고 있는 포인터 변수. 이 값을 보존하지 못한다면 여러번 실행될 수 있음. 최초값 .. 2021. 1. 28.
iOS AVPlayer 예제 iOS AVPlayer 예제 순서 0.스토리보드에서 뷰 그리기 1. 라이브러리 import 2. 변수 선언 #import "ViewController.h" #import @interface ViewController () //비디오 뷰 @property (weak, nonatomic) IBOutlet UIView *videoView; //AVPlayer 플레이어 @property (strong, nonatomic) AVPlayer *player; //AVPlayerLayer @property (strong, nonatomic) AVPlayerLayer *playerLayer; //재생 여부 체크 @property (nonatomic, assign) BOOL isVideoPlaying; //현재 시간 라벨.. 2021. 1. 26.
iOS AVAudioPlayer 예제 iOS AVAudioPlayer 예제 iOS AVAudioPlayer 개발순서 1. AVFoundation import 2.AVAudioPlayerDelegate 채택 3.프로퍼티 선언 및 시작, 정지 메소드 선언 #import #import @interface AudioPlayer : NSObject @property (nonatomic , strong) NSURL *fileURL; @property (nonatomic, strong) AVAudioPlayer *audioPlayer; -(void)play; -(void)stop; @end 4.오디오 세션 초기화 및 변수 초기화 #import "AudioPlayer.h" @implementation AudioPlayer @synthesize fileUR.. 2021. 1. 26.
13.프로세스의 스케줄링 프로세스의 스케줄링 일반 os 와 리얼타임 os의 차이점 스케쥴러가 일반 os 와 리얼타임 os를 구분 짓는다. 스케쥴러가 타임슬라이스 기준으로 프로세스 실행을 이동시킨다. 리얼타임os : 타임슬라이스가 짧다. 실시간, 바로바로 응답. 응답성이 좋다. 일반 os : 타임슬라이스가 길다. 그래서 응답성이 느리다. 선점형 os : 다른 프로세스가 실행중이면 그 프로세스를 밀어내고, 실행을 하는 방식이다. (스케쥴러가 일을 훨씬 많이 한다.) 비선점형 os : 다른 프로세스가 실행중이면, 그 프로세스를 밀어내지 않고, 기다렸다가 실행을 하는 방식이다. (스케줄러가 하는 선점형 os보다 하는 일이 적다.) 스케줄링 알고리즘 우선순위가 동일한 프로세스에는 평등원칙을 적용한다. 우선순위가 높은 프로세스에게 특권원칙.. 2021. 1. 24.
스택 스택이란 정의 : 스택은 ‘먼저 들어간 것이 나중에 나오는 자료구조’로써 초코볼이 담겨있는 통에 비유할 수 있다. 스택의 기본 연산 초코볼 통에 초코볼을 넣는다. (push) 초코볼 통에서 초코볼을 꺼낸다. (pop) 이번에 꺼낼 초코볼의 색이 무엇인지 통 안을 들여다 본다. (peek) 스택의 ADT 정의 스택의 배열기반 구현 인덱스가 0인 위치를 스택의 바닥으로 정의해야 배열 길이에 상관없이 바닥의 인덱스 값이 동일해진다. - 인덱스 0의 배열 요소가 '스택의 바닥으로 정의 되었다. - 마지막에 저장된 데이터의 위치를 기억해야 한다. (Top의 위치 중요) push : Top을 위로 한칸 올리고(+1), Top이 가리키는 위치에 데이터 저장 (선 증가, 후 저장) pop : Top이 가리키는 데이터를.. 2021. 1. 24.
큐의 정의 큐는 먼저들어간 데이터가 먼저 나오고, 나중에 나온 데이터가 나중에 나오는 자료구조이다. 큐는 운영체제 관점에서 보면 프로세스나 스레드의 관리에 활용이 되는 자료구조이다. 이렇듯 운영체제의 구현에도 자료구조가 사용된다. 따라서 운영체제의 이해를 위해서는 자료구조에 대한 이해가 선행되어야 한다. 큐의 ADT 정의 ADT를 대상으로 배열기반의 큐 또는 연결리스트 기반의 큐를 구현할 수 있다. 원형큐의 구조 아래와 같은상황은 F 와 R이 같은 위치를 가리키는 상태가 텅빈 상태를 나타낸다. enqueue 연산시, R이 가리키는 위치를 한칸 이동시킨 다음에, R이 가리키는 위치에 데이터를 저장한다. dequeue연산시, F가 가리키는 위치를 한칸 이동 시킨 다음에, F가 가리키는 위치에 저장된 데이터를.. 2021. 1. 24.
iOS AudioFileStream 예제 iOS AudioFileStream 예제 동작원리 1.AudioFileStream 구조체 생성 SimpleStreamer.h /* 참고: 네트워크 상태는 시시각각 변할 수 있으므로, 이에 대응하려면 버퍼에 충분한 오디오 데이터가 있어야 한다. */ #import #import // 할당할 오디오 큐 버퍼 개수 #define kNumAQBufs 3 // 배열 내의 패킷 디스크립션 개수 #define kAQMaxPacketDescs 512 // 하드 코딩된 버퍼 사이즈 #define kAQBufSize 1048576. /* 1MB 또는 2**20 */ /* 오디오 큐 버퍼와 관련 데이터를 저장할 데이터 구조체 스트리밍 클래스의 인스턴스는 PlayQueueData 구조체 배열을 생성한다. */ typedef .. 2021. 1. 22.
iOS 코어오디오 재생 예제자료 보호되어 있는 글 입니다. 2021. 1. 21.
iOS coreaudio 재생 예제 - 아이폰 iOS coreaudio 재생 예제 - 아이폰 1.오디오 재생을 위한 변수 설정 #import #import #import @interface AppDelegate : UIResponder @property (strong, nonatomic) UIWindow * window; /* ASBD (오디오 스트림 기본 설명)를 구성하여 선형 PCM 형식 또는 동일한 크기의 채널이있는 CBR (고정 비트 전송률) 형식을 지정할 수 있습니다. 가변 비트 전송률 (VBR) 오디오 및 채널의 크기가 다른 CBR 오디오의 경우 각 패킷은 AudioStreamPacketDescription 구조에 의해 추가로 설명되어야합니다. */ @property (nonatomic, assign) AudioStreamBasicDesc.. 2021. 1. 21.