본문 바로가기

ios 뽀개기/objective-c76

날짜데이터를 문자로 변환 날짜데이터를 문자로 변환 //기준이 되는 날짜 // 1. 3일 전 날짜를 구함 -> 데이터 포멧 변환 -> string으로 변환 -> 초 로변환 (568393200.000000) NSDateComponents* deltaComps = [[NSDateComponents alloc] init]; [deltaComps setDay:-3]; NSDate* tomorrow = [[NSCalendar currentCalendar] dateByAddingComponents:deltaComps toDate:[NSDate date] options:0]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @".. 2019. 1. 9.
AppDelegate 사용자 터치 감지하기 AppDelegate 사용자 터치 감지하기 .h #import #import "SecurityViewController.h"@interface DetectTouchWindow : UIWindow@property (strong,nonatomic) NSTimer *idleTimer; //타이머@property (strong, nonatomic) UIWindow *window; @end .m #import "DetectTouchWindow.h" @implementation DetectTouchWindow@synthesize idleTimer; - (void)sendEvent:(UIEvent *)event { [super sendEvent:event]; // 타이머 재설정 횟수를 줄이기 위해 시작 터치 또는 종.. 2019. 1. 4.
최상위 viewController 클래스의 이름 가져오기 최상위 viewController 클래스의 이름 가져오기 //현재 띄워진 class 의 이름 UIViewController *curentViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController]; NSString *currentSelectedCViewController = NSStringFromClass([[((UINavigationController *)curentViewController) visibleViewController] class]); 2019. 1. 4.
ios 오토레이아웃 코드로 응용하기 ios 오토레이아웃 코드로 응용하기 .m #import @interface AutoLayoutSampleViewController : UIViewController @end.h #import "AutoLayoutSampleViewController.h" @interface AutoLayoutSampleViewController () @property (nonatomic,strong) UILabel *bigTitle; //암호 입력 @property (nonatomic,strong) UILabel *smallTitle; //암호를 입력해주세요. @property (nonatomic,strong) UITextField *textfield; //텍스트 필드 @property (strong, nonatomic).. 2019. 1. 4.
암호화 복호화 암호화 복호화 #import #import "RNDecryptor.h"#import "RNEncryptor.h" @interface ViewController : UIViewController{ NSString *secretKey; //salt}- (NSString *)getCryptorEncrypt:(NSString *)toEncryptString; //암호화 - (NSString *)getRNCryptorDecript:(NSString *)toDecriptDataString; //복호화 @end #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [s.. 2019. 1. 2.
Obejctive c 클래스 변수 & 배열을 json 변환 Obejctive c 클래스 변수 & 배열을 json 변환 #선언 CaptureMediaActivity.h //임시 경로 저장된 최종 배열 리턴+ (NSMutableArray * ) tempMediaFilePathArray; //배열에 스트링 경로 저장하기+ (void) setTempMediaFilePathToArray:(NSString *)urlString; CaptureMediaActivity.m //공용 배열 변수 ,내부사용할 정적변수 생성static NSMutableArray * _tempFileUrlArray; - (void)viewDidLoad { [super viewDidLoad]; //배열 초기화_tempFileUrlArray = [[NSMutableArray alloc]init]; } /.. 2019. 1. 2.
UIView 커스터마이징 & 오디오 비디오 사진 뷰어 uiview 커스터마이징 & 오디오 비디오 사진 뷰어 .h #import #import #import @interface MediaViewActivity : UIViewController @end .m #import "MediaViewActivity.h" @interface MediaViewActivity ()@property (strong, nonatomic) MPMoviePlayerController *moviePlayer;@property (strong, nonatomic) AVAudioPlayer *audioPlayer;@property (nonatomic, assign) BOOL isPlaying;@property(strong,nonatomic) NSTimer *TimeOfActiveUser;@.. 2018. 12. 28.
ios 저장 용량 계산 ios 저장 용량 계산 # pragma about Storage Method //전체 저장 용량-(uint64_t)getTotalDisk { uint64_t totalSpace = 0; NSError *error = nil; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; if (dictionary) { NSNumber *fileSystemSizeInBytes .. 2018. 12. 27.
ios 오디오 + 비디오 권한 체크 함수 ios 오디오 + 비디오 권한 체크 함수 .h #import #import @interface PermissionsManager : NSObject //음성녹음 권한체크-(void)checkMicrophonePermissionsWithBlock :(void(^)(BOOL granted))block; //카메라 권한 상태 체크-(void)checkCameraAuthorizationsStatusWithBlock :(void(^)(BOOL granted))block; @end .m #import "PermissionsManager.h" #import @implementation PermissionsManager //오디오 권한 체크 - (void)checkMicrophonePermissionsWithBlock.. 2018. 12. 20.
FileManager FileManager .h #import @interface FileManager : NSObject //임시파일 저장 URL-(NSURL*) tempFileURL; //삭제할 파일이 있는 URL-(void) removeFile:(NSURL *) outputFileURL; //복사할 문서가 있는 위치 URL 넣고 그곳으로 복사-(void)copyFileToDocuments:(NSURL *)fileURL; //카메라롤에 복사-(void)copyFileToCameraRoll:(NSURL *)fileURL; @end .m #import "FileManager.h" #import @implementation FileManager //현재 파일 위치 - (NSURL *)tempFileURL{ NSLog(@"Fil.. 2018. 12. 20.
audiosessionQueue play - 코어오디오 재생하기 audiosessionQueue play .h #import #import #import #import #import @interface CoreAudioPlayViewController : UIViewController enum { kNumberBuffers = 3, //오디오 버퍼는 3개 kNumberPackages = 10* 1000, //한번에 읽는 패키지 개수}; struct PlayerStat{ AudioStreamBasicDescription mDataFormat; //오디오 스트림의 광범위한 특성정의 AudioQueueRef mQueue; // 재생오디오큐 AudioQueueBufferRef mBuffers[kNumberBuffers]; //오디오 큐 버퍼 포인트의 리스트 AudioFile.. 2018. 12. 19.
ios audiosessionqueue 파일 재생 시간 구하는 두가지 방법 ios audiosessionqueue 파일 재생 시간 구하기 1. avfoundation api 이용 AVURLAsset* audioAsset = [AVURLAsset URLAssetWithURL:url2 options:nil]; CMTime audioDuration = audioAsset.duration; float audioDurationSeconds = CMTimeGetSeconds(audioDuration); NSLog(@"파일 재생 시간 audioDurationSeconds : %f " ,audioDurationSeconds); 2.audiofilegetproperty 이용 //파일 전체 재생시간 구하기 Float64 outDataSize = 0; UInt32 thePropSize = size.. 2018. 12. 19.
coreAudio recording coreAudio recording .h #import #import #import #import #import //오디오 큐 서비스를 사용하는 클래스 정의 enum { kNumberBuffers = 3, //오디오 버퍼큐는 3개 kNumberPackages = 10* 1000,}; struct RecorderStat{ AudioStreamBasicDescription mDataFormat; //오디오 스트림의 광범위한 특성정의 AudioQueueRef mQueue; // 재생오디오큐 AudioQueueBufferRef mBuffers[kNumberBuffers]; //오디오 큐 버퍼 포인트의 리스트 AudioFileID mAudioFile; //오디오 파일 객체 UInt32 bufferByteSize;.. 2018. 12. 19.
AVFoundation을 이용한 녹음 재생하기 AVFoundation을 이용한 녹음 재생하기 .h #import @interface ViewController : UIViewController //녹음버튼 + 멈춤@property (strong, nonatomic) IBOutlet UIButton *recordPauseButton; //정지 버튼@property (strong, nonatomic) IBOutlet UIButton *stopButton; //플레이 버튼@property (strong, nonatomic) IBOutlet UIButton *playButton; //녹음 버튼 + 멈춤버튼 눌렀을때- (IBAction)recordPauseTapped:(id)sender; //정지버튼 눌렀을때- (IBAction)stopTapped:(id)s.. 2018. 12. 17.
이미지 자르기 + 제스쳐 + transparentview 예제 이미지 자르기 + 제스쳐 + transparentview 예제 #import #import "ImageViewerViewController.h" @interface ViewController : UIViewController - (IBAction)captureBtnAction:(id)sender; @end #import "ViewController.h" @interface ViewController (){ IBOutlet UIImageView *myImage; UIView *testVw; //뷰파인더 CGPoint prevPoint; //옮기기 전 위치 point UIView *resizeVw; //빨간색 UIView *resizeVw2;// 파란색 UIBezierPath *backPath; //검은색 .. 2018. 12. 14.
objective c block에 대한 이해 objective c block에 대한 이해 block 정의 변수나 데이터 구조안에 담을 수 있다. 파라미터로 전달 할 수 있다. 반환값(return value)으로 사용할 수 있다. 할당에 사용된 이름과 관계없이 고유한 구별이 가능하다. 재사용해야하는 경우에는 클래스 기반의 Delegate을 사용고, 한번 사용할 로직이라면 보통 블럭을 사용 block 은 런타임에 생성되는 다이나믹 함수(Dynamic Function) 이다. 병렬처리나 비동기처리(Asyncronous Processing), 혹은 '함수형언어(Functional Language)'의 특징과 비슷하다. 예제 #import "SampleClass.h"#import int main(int argc, const char * argv[]) { @.. 2018. 12. 10.
UIImagePickerController를 이용한 비디오 UIImagePickerController를 이용한 비디오 뷰컨트롤러 #import #import "ImagePickerController.h"#import "ListTableViewController.h" @interface ViewController : UIViewController @property(nonatomic,strong) ImagePickerController *imagePickerController; - (IBAction)cameraBtn:(id)sender; - (IBAction)librayBtn:(id)sender; @end #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle.. 2018. 12. 7.
ios filemanager 관련 모듈 - 저장 삭제 이동 ios filemanager 관련 모듈 #import @interface IDFileManager : NSObject - (NSURL *) tempFileURL;- (void) removeFile:(NSURL *)outputFileURL;- (void) copyFileToDocuments:(NSURL *)fileURL;- (void) copyFileToCameraRoll:(NSURL *)fileURL; @end #import "IDFileManager.h"#import @implementation IDFileManager //현재 파일 위치- (NSURL *)tempFileURL{ NSString *path = nil; NSFileManager *fm = [NSFileManager defaultManag.. 2018. 12. 7.
ios 사이드 메뉴 ios 사이드 메뉴 MMDrawerController-master 라이브러리와 stroyboard 를 이용한 사이드 메뉴 샘플 uiview 를이용한 사이드 메뉴 샘플 uiview 모듈을 이용한 사이드 메뉴 샘플 2018. 12. 5.
ios objective c sha256 해쉬 sha 512 함수 ios objective c sha256 해쉬 sha 512 함수 #import -(NSString*) sha256:(NSString *)clear{ const char *s=[clear cStringUsingEncoding:NSASCIIStringEncoding]; NSData *keyData=[NSData dataWithBytes:s length:strlen(s)]; uint8_t digest[CC_SHA256_DIGEST_LENGTH]={0}; CC_SHA256(keyData.bytes, keyData.length, digest); NSData *out=[NSData dataWithBytes:digest length:CC_SHA256_DIGEST_LENGTH]; NSString *hash=[out .. 2018. 12. 5.
ios 카메라를 만드는 두가지 방법 - 설명 ios 카메라를 만드는 두가지 방법 1 UIImagePickerController 사용 -Foundation 프레임워크의 UIImagePickerController 클래스를 사용하면된다. 장점: 구현이 쉽다. 단점: 커스터마이징이 어렵다. AVCaptureDevice 다양한 커스터마이징 가능 AVCaptureSession 카메라를 시작을 선언해주는 역할을 한다. 일반적으로 별도의 카메라 큐를 만들어서 세션을 시작한다. AVCaptureVideoPreviewLayer 카메라가 향하는 곳을 영상으로 볼 수 있다. PreViewLayer는 영상이 나오는 화면을 가르킨다. PreViewLayer는 AVCaptureDevice + AVCaptureSession + Input + Output을 갖춰야 한다. AVC.. 2018. 12. 4.
ios 카메라를 만드는 두가지 방법 2 첫번째 방법 //// ViewController.h// CarmeraExam1// // #import #import @interface ViewController : UIViewController //프레임을 강제로 연속 캡쳐@property (weak, nonatomic) IBOutlet UIView *frameforcapture; //순간적으로 찍은 이미지 보이게@property (weak, nonatomic) IBOutlet UIImageView *imageV; - (IBAction)takePhoto:(id)sender; @end //// ViewController.m// CarmeraExam1// // #import "ViewController.h" @interface ViewController .. 2018. 12. 3.
objective c nsoperation 예제 objective c nsoperation 예제 개념정리 #. NSOperation =. 하나의 작업 단위. NSOperation은 모델링 상태, 우선순위, 의존성, 관리를 지원하는 추상 클래스이다. NSOperation를 상속하여 커스텀 클래스를 만들어 활용함. #. 네트워크 요청, 이미지 리사이즈, 텍스트 처리, 또는 기타 다양한 반복처리등을 처리하는 NSOperation 이 있을때, 이 특정 작업이 담겨있는 NSOperation 객체는 혼자서 일을 할 수 없다. 이러한 작업을 진행해주는 녀석이 NSOperationQueue이다. #. NSOperationQueue : NSOperationQueue는 작업의 동시 실행을 조절 기본적으로는 First-In-First-Out으로 동작 maxConcurre.. 2018. 11. 27.
ios objective c - http 네트워크 통신 1 ios objective c - http 네트워크 통신 1 이번포스팅에서는 ios 네트워크 통신에 대해서 간단히 정리한다. 상황클라이언트: ios 폰중간에서 컨트롤하는 녀석: 퍼사드서버: json 데이터형식 ios 네트워크에서 퍼사드 디자인 패턴을 알아본다. 퍼사드란 클라이언트와 서버 사이에 위치하는 녀석으로 클라이언트(앱)의 수정과 배포를 획기적으로 수월하게 해주는 녀석이다. 아래 코드는 날씨어플 버젼 1에서 버젼2로 코드수정을 했고, 주식어플 버젼1에서 버젼2로 코드 수정을하고 업데이트를 했다. 퍼사드 패턴을 써서 얼마나 쉽고 간결하게 처리를 해줬는지 확인했으면 ok. 코드에 주석을 달아 놓았다. 네비게이션 appdelegate.h//// AppDelegate.h// 1NetWork//// Creat.. 2018. 11. 14.
ios objective c 코어오디오 다루기 6 - 오디오 파일 변환 ios objective c 코어오디오 다루기 6 - 오디오 파일 변환 //// main.m// 6//// Created by service on 2018. 11. 12..// Copyright © 2018년 service. All rights reserved.// /* - mp3 나 aac 와 같은 엔코드된 파일을 .caf 컨테이너 파일로 변환하기 - 하나의 파일에서 데이터를 읽고, 메모리의 일부 패킷을 변환하고, 결과를 다른 파일에 쓰기 - 오디오 파일 서비스 사용함. */ #import #import #import #define kInputFileLocation CFSTR("/Users/service/Desktop/test_cbr.mp3") typedef struct MyAudioConverterS.. 2018. 11. 13.
ios AVFoundation으로 오디오 플레이어 만들기 AVFoundation 으로 오디오 플레이어 만들기 1. mp3 파일 넣어주기, view객체 지정 대략 이런 모습 2.위에서 만든 뷰객체들을 컨트롤러에 연결시켜 준다.(avfoundation import 하고 아래 두개의 매서드를 선언해준다.) //// ViewController.h// avFoundationMusic//// Created by MacBookPro on 10/11/2018.// Copyright © 2018 MacBookPro. All rights reserved.// #import #import //델리게이트 선언@interface ViewController : UIViewController - (IBAction)playPauseAudio:(id)sender;- (IBAction)sto.. 2018. 11. 10.
ios objective c 코어오디오 다루기 5 - 재생기능 ios objective c 코어오디오 다루기 5 - 재생기능 /* 오디오 큐는 오디오 스트림을 처리하기 위해서 버퍼의 큐를 사용한다. 즉 애플리케이션은 큐에 버퍼를 제공함으로써 설정하고, 큐는 개발자 코드가 실행돼야 하는 시점에 개발자 코드의 콜백 함수로 버퍼를 전달한다. 버퍼크기를 가늠하고, 매직쿠키를 관리하는 것은 녹음하기와 비슷하지만 얍축된 오디오 데이터의 버퍼를 기술하는 AudioStreamPacketDescription을 사용한다. */ #define kPlaybackFileLocation CFSTR("/Users/service/Library/Developer/Xcode/DerivedData/4-biuofoahmxwspaaibakhduwwgnmi/Build/Products/Debug/outpu.. 2018. 11. 9.
ios objective c 코어오디오 다루기 4 - 녹음기능 ios objective c 코어오디오 다루기 4 - 녹음기능 //개발자가 오디오 큐를 생성할때 (녹음할때)입력장치에서 캡쳐된 오디오의 버퍼를 애플리케이션에 전달하거나 //(재생할때 )버퍼를 채울것을 요구하기 위한 콜백함수를 제공한다. //맥의 기본입력장치에서 녹음을 하고 , 캡쳐된 오디오를 파일에 쓴다. //사용할 오디오 형식과 녹음을 할 파일을 설정 //오디오 큐를 생성 //큐를 시작 //큐를 중지 //파일을 닫는 등의 해제 작업 #import #import #define kNumberRecordBuffers 3 //오디오 큐 콜백을 녹음하기 위한 사용자 정보 구조체 typedef struct MyRecorder { AudioFileID recordFile; //output파일 참조 SInt64 re.. 2018. 11. 8.
ios objective c 코어오디오 다루기 3 - AudioStreamBasicDescription 데이터 구조체 ios objective c 코어오디오 다루기 3 - 데이터 구조체 코어오디오는 오디오 데이터 패킷을 스트림으로 본다. AudioStreamBasicDescription 구조체는 샘플율, 하나의 채널에 비트의 수, 프레임에 채널의 수등 데이터 구조를 묘사하는 메타데이터를 포함한다. 스트림의 ASBD에 관해 중요한점은 오디오 데이터 형식의 구현 세부사항이기 때문이다. 예로 파일이나 네트워크 스트림과 같은 어떤 소스에서 데이터를 읽을 때 코어 오디오의 여러 부분은 ASBD 값을 채운다. ASBD의 구조체 이름은 m으로 시작한다. // // main.m // // // Created by MacBookPro on 06/11/2018. // Copyright © 2018 MacBookPro. All rights.. 2018. 11. 7.
ios objective c 코어오디오 다루기 2 - AudioStreamBasicDescription으로 다양한 주파수의 음원만들기 ios objective c 코어오디오 다루기 2 - AudioStreamBasicDescription으로 다양한 주파수의 음원만들기 #import #import #define SAMPLE_RATE 44100 // 초당 44,100 샘플이나 44.1kHz 샘플율 #define DURATION 5.0 //얼마나 많은 오디오의 초를 만들기를 원하는지 //#define FILENAME_FORMAT @"%0.3f-square.aif" // 삐익~~~ 티비 신호 나갔을때 음 #define FILENAME_FORMAT @"%0.3f-saw.aif" //#define FILENAME_FORMAT @"%0.3f-sine.aif" //파일이름 넣기 //솔음으로 쭉~ int main(int argc, const char .. 2018. 11. 6.