목록분류 (103)
이모저모
ReplayKit스크린의 비디오 및 마이크로폰의 오디오를 녹음 할 수 있습니다. 그런 다음 메일, 메시지 등을 이용해 공유할 수 있습니다.ios10 이상부터는 (스트리밍 서비스)실시간으로 브로드 캐스팅을 하기 위한 추가 앱을 만들 수 있다.초점은 게임 생방송에 맞춰져 있는 것 같다.AVPlayer 콘텐츠와 호환되지 않습니다. 통화 중이나, 영상 통화 같은 경우에는 screen을 저장하는 것은 가능하다.통화 시작후 microphone: true 설정 후 하면 어떻게 동작할지 예상할 수 없게 된다.
아래는 구글 번역기를 돌려서 만든 block programming 가이드이다.수정이 필요하다. Introduction블록 객체는 C-레벨 구문 및 런타임 기능이다. 표준 C 함수와 유사하다, 하지만 실행 코드외에도 스택 또는 힙 메모리에 대한 변수 바인딩을 포함할 수 있다. 따라서 블록은 동작에 영향을 줄 수 있는 상태 집합을 유지 관리 할 수 있다. 블록을 사용하여 함수 표현식을 작성하여 API로 전달하고, 선택적으로 저장하고 여러 스레드에서 사용할 수 있다. 블록은 콜백에서 실행될 코드와 실행 중에 필요한 데이터를 모두 전달하기 때문에 콜백으로 특히 유용합니다. Declaring and Using a Block ^연산자를 사용하여 블록변수를 선언하고, 블록 리터럴의 시작을 나타냅니다.block 자체의..
구현 구조 typedef struct objc_object{ Class isa; } *id; typedef struct objc_selector *SEL; typedef id (*IMP)(id self,SEL _cmd,...); struct objc_class { Class isa; Class super_class const char *name long version long info long instance_size struct objc_ivar_list *ivars struct objc_method_list **methodLists struct objc_cache *cache struct objc_protocol_list *protocols }; typedef struct objc_class *Cla..
Objective-C의 메시징 id objc_msgSend(id self, SEL cmd, ...);typedef id (*IMP)(id self, SEL cmd, ...); 과정1. objc_msgSend 함수는 리시버의 클래스가 구현한 메서드 목록을 훝는다.2. 찾지 못하면 상속 계층에 따라 메서드를 찾아 거꾸로 올라가 간다.(child->parent)3. 일치하는 메서드를 찾지 못하면 mesage forwarding이 동작한다. 특징- 매우 느릴것 같아 보이지만 각 클래스마다 하나씩 있는 빠른 맵에 결과를 캐싱한다. (그래서 한번 호출된 클래스의 선택자에 대한 메시징은 빠르게 수행)- method들은 클래스마다 있는 내부 테이블에 SEL을 키로 하여 보관하여 objc_msgSend에서 함수 구현을 ..
property 개요컴파일 시간에 오프셋을 계산하는 코드는 클래스 정의를 변경했을 때, 재컴파일하기 전까지는 깨진 상태이다.ex) 과거의 클래스 정의를 사용하는 라이브러리가 있을 수 있다. 링크한 코드가 새로운 클래스 정의를 사용하면 불일치가 발생 objective-c 채택한 방법은 offset을 저장하고 있는 클래스 객체를 가진 특별 인스턴스 변수를 만드는 방법이다. 그래서 인스턴스 변수를 클래스 확장 카테고리, 구현 파일에 정의할 수 있다는 것을 의미한다. 그래서 더 이상 인터페이스 파일에 선언된 모든 인스턴스 변수를 가질 필요가 없을 의미한다. 내부 정보를 public 인터페이스 파일에 공개하지 않아도 된다. @property 문법을 통해서 접근자 메서드를 자동으로 생성하는 방법을 제공@synthe..
ios의 storyboard은 nib을 사용하여 구현합니다. nib object loading process1) nib file 컨텐츠를 메모리로 load 한다.ㄱ) nib 객체의 row data가 메모리에 올라가는 데 이 때 아카이빙된 상태로 올린다.ㄴ) nib 파일과 관련된 모든 사용자 정의 이미지, 사운드 리소스가 로드 되어 cocoa 이미지, 사운드 캐시에 추가됩니다. 2) data를 unarchive 하고 객체를 인스턴스화합니다. 아래와 같은 규칙을 순서대로 사용한다. (이 때 객체 초기화하는 방법은 객체의 유형 및 아카이브 인코딩에 따라 다르다.) (nib 로딩하기 위한 코드를 구별하기 위해 initialization 메소드를 룰로 정하였다.) ㄱ) 기본적으로 객체는 initWithCoder ..
ARC를 사용하지 않고 MRC를 사용하는 경우에 많은 주의가 필요로 하다. ios의 프레임워크에서는 내가 직접 alloc, new, copy, mutableCopy로 시작하지 않는 경우 모두 autorelease로 설정하여 프로그래머가 신경 쓰지 않도록 해준다.(당연하긴하다. 프레임워크가 retain으로 카운트를 증가하면 모든 메소드에 대해서 retain을 하는지 여부와 어디서 release하는지를 결정해야한다.) 공부를 하면서 알게 된 점을 몇가지 적으려고 한다.(지속적으로 추가할 수도...) 1. UINavigationController 는
환경centos 7.3.1611mysql 5.7 이상 설치 방법yum install mysql-server 실행 방법systemctl start mysqld.servicemysql -u root -p 오류발생ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 해결방법MySQL v 5.7 or higher generates a temporary random password after installation and stored that in mysql error log file, located at /var/log/mysqld.log for an installation by the MySQL Yum reposi..
git & github working dir => index => head git init : git 저장소 시작 content를 제외한 git 저장소의 모든것을 기록 git status : 현재 상태를 보여준다. git add : working dir 에 있는 것을 index에 올린다. git commit : index에 올린것을 head에 올린다. git log --graph 로그를 출력한다. git diff : 변경된 차이를 보여준다. git checkout : head에 포인터만 바꿔준다. git reset : 이전에 commit한 내용으로 간다.HEAD~ , 헤드를 하나만 움직인다. HEAD~2 하면 두개를 움직인다.--hard : working dir까지 이전으로 되돌려진다.--default ..
Springlight framework EJB(Enterprise java beans)기업용 자바 프레임워크많은 사람들이 공통으로 작업변경이 심함(생산성이 떨어지는 방식) - cc, cv네트웍(다양한 연결, 연결시 각종 장애)보안, 저장/복구성능=> heavy framework SpringMVC많은 디자인 패턴중에서 MVC 패턴을 초점 맞춰 web 분야에 제공하는 것 Maven메이븐을 통해서 설정을 맞춘다. 없으면 받아준다. resources 폴더에 xml파일을 집어 넣어주면 된다. getBean(ID) : 객체를 생성한것을 받는게 아니라 Spring이 생성한 것에 대한 정보를 넘겨주는 것이다. xml에서 안에 있는 객체는 default는 싱글톤 패턴을 사용한다. pom.xml에서 라이브러리를 설치한다...