티스토리 툴바

달력

052012  이전 다음

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  

'컴과학생'에 해당되는 글 43건

  1. 2011/03/04 [스크랩] 코드페이지
  2. 2010/11/12 [iPhone] 프로그래밍 기본 개념(1)
  3. 2010/11/12 플래그와 버스
크리에이티브 커먼즈 라이선스
Creative Commons License
http://ko.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%ED%8E%98%EC%9D%B4%EC%A7%80

코드 페이지(code page)는 특정한 문자 인코딩 테이블을 위해 쓰이는 전통적인 IBM 용어이다. 문자 인코딩 테이블은 0부터 255까지의 정수를 표현하는 단일 옥텟(octet, 바이트)이라고 불리는 일련의 비트들이 특정한 문자와 결합하여 도표화(mapping)한 것이다. IBM과 마이크로소프트는 코드 페이지를 문자열 집합(charset)에 자주 할당한다.

[편집]IBM PC (OEM) 코드 페이지

이러한 코드 페이지들은 자주 MS-DOS와 같은 운영 체제들에서 쓰이며 박스 형태의 문자를 많이 포함하고 있다. 원래의 IBM 개인용 컴퓨터 코드 페이지(번호 437)가 국제용으로 설계된 것이 아니기 때문에, 호환되지 않는 비호환 변형이 들어가기도 했다. 마이크로소프트는 이러한 것들을 OEM 코드 페이지들로 일컫는다. 보기는 아래와 같다:

[편집]다른 코드 페이지

현대의 응용 프로그램들, 운영 체제, 그리고 프로그래밍 언어에서, IBM 코드 페이지들은 ISO 8859-1과 유니코드와 같은 더 새로운 국제 표준이 세워졌기 때문에 없는 것으로 표시된다.

[편집]함께 보기

저작자 표시 비영리 변경 금지
Posted by 만솜
크리에이티브 커먼즈 라이선스
Creative Commons License
아.. 
아이폰 개발 중인데 하다보니까 엉망이다 ㅜ
초심으로 돌아가기.
아래는 . 혼자 공부한 거 정리한 거일뿐이다.

<오브젝트 씨 , oop를 위한 언어>
1. 클래스와 인스턴스
이건 다 아는거 ...
클래스는 설계도 인스턴스는 설계도 따라만든 실제 건물.
그러니까 클래스는 붕어빵 틀, 인스턴스는 붕어빵 (틀이 있으니까 붕어빵 계속 만들어 낼수 있다.)
*클래스에 준거해서 실제로 컴퓨터의 메모리에 자리잡은 오브젝트를 인스턴스 오브젝트라고 함.

2. 메시징
오브젝트 씨의 함수 호출은 '[]'로 구성.
오브젝트가 앞에오고 오브젝트 메소드가 뒤에.
  봉봉이가 싱싱카를 타는 메소드를 써볼까. 싱싱카는 빨갛고 귀엽다
 [bongbong rideSingsingCar:red cute:YES]; 대충 이런식?... 
매개변수는 띄어쓰기로 구분
 // 음 근데 뭔가 석연치 않은 부분이 있다....  이부분은 오브젝트 씨 문법을 더 알아야겠군...]

3. 인스턴스 변수와 액세서 메소드
당연히!
클래스는 내부적으로 사용할 인스턴스변수(멤버변수) 가지고 외부에서 직접 그 인스턴스변수에 접근할수 없다.
그러나!
클래스의 인스턴스 오브젝트를 만들면 외부에서 값을 입력해야하는 경우가 대부분.
=>액세서 메소드를 사용한다.
-getter : 변수의 이름을 그대로 사용
-setter : 변수 이름 앞에 set을 붙이고 변수의 첫 문자를 대문자로 바꾸면 정해진 규칙을 지키는 setter메소드가 만들어진다.
NSString *myname=[me name]; //name is getter message
[me setName:@"mansom"]; //setName is setter message

4. 코코아 클래스만들기
- header file, implement파일로 구성.
- header : @interface와 @end로 이루어짐.
@interface 뒤에 클래스 이름 :(콜론)뒤로는 슈퍼클래스 이름 <>사이에는 클래스가 준수하는 프로토콜의 이름
{}사이에는 인스턴스 변수 선언, {}밝에는 메소드 선언 
ex)책< 인피니티북스 iPhoneSDK튜토리얼> 에 있는 예제

@interface Person : NSObject <NSCopying> 클래스 이름 : 슈퍼클래스 <프로토콜>
{
//인스턴스 변수들이 들어갈자리
NSString *name;
}
//메소드 구현이 들어갈자리
-(void)singASong;
-(NSString *)name;
-(void)setName:(NSString *)newName;
@end
 
@: C에서는 사용하지 안는 문자, 오브젝트C에서 지시어에서 사용.
5. 헤더포함
교차 포함의 에러를 막기위해 @class를 이용해 클래스의 존재만 알리고 임플리먼트 파일에서 실제 import를 하느게 좋다.


<메모리 관리>
개발자가 직접 메모리 관리, 생성과 소멸 모두 책임
1. 원칙
- 만든 곳에서 릴리즈 하기!
- 우리가 인스턴스 오브젝트에 값을 넣을 때, 넣는 쪽에서는 릴리즈학 받은쪽에서 보관.
만약 넣는 쪽에서 관리하지 않고 받은 쪽에서 사용이 끝난뒤 릴리즈 하려면 코드가 복잡해짐. 널포인터에러가발생할 가능성도. // 리테인카운터관리 (리테인카운터가 0이면 메모리 해제)

2. alloc, retain, release
위 세 메소드는 NSObject에서 선언되어있음.
모든 코코아 오브젝트가 사용 가능.
+alloc : 특정 클래스의 인스턴스 오브젝트가 메모리에 전개, 리테인 카운터는 1 //클래스메소드
-retain : 이 메소드를 받으 오브젝트의 참조카운트는 1 증가, 어떤 오브젝트를 확실하게 보호하고 싶을때 이걸 호출
-release : 오브젝트 참조카운트 1감소, 사용을 마치면 이 메소드를 보내서 메모리에서 해제 시킴.

3. +메소드, -메소드
+가 붙은 메소드는 : 클래스 메소드
   클래스 오브젝트라고 하는 오브젝트에 보내는 메소드
   클래스에 바로 호출한다. 
-가 붙은 메소드는 : 인스턴스 메소드 
   클레스를 이용해 만든 인스턴스 오브젝트에 보내는 메소드

4. addObject, addSubView // 여기 잘 모르겠, 설멍이 부족.
컬렉션에 넣고 빼는것이 리테인 카운트로 ...
컬렉션 나름대로 자신이 관리해야 하는 오브젝트를 책임짐.

*뷰오브젝트도 컬렉션과 유사한 방식으로 운용 , 뷰를 마들어서 다른뷰에서 서브뷰로서 더하면 그 서브뷰의 오브젝트 사이클은 슈퍼뷰가 관장하므로 서브뷰는 슈퍼뷰의 외부에서는 리테인카운트가 0이어야함.
5. autorelease pool
릴리즈를 예약


일단 여기까지..
addSubView와 objectC를 조금더 봐야할 것 같은! 
저작자 표시 비영리 변경 금지
Posted by 만솜
크리에이티브 커먼즈 라이선스
Creative Commons License
컴퓨터 작동 방법중 공통적으로 사용하는 2가지 기법 : 플래그와 버스

Flag : 컴구조 시간의 특수레지스터 값들. ALU 값의 결과가 0이면 zero flag,음수이면 Negative flag... 등등. 
1byte나 1bit로 각각의 상태를 나타내는 레지스터 값들이 모두 flag. 깃발.

while( int count > 10 )
{ count++; printf("%d\n", count); } 여기서 count도 일종의 플래그가 될수 있음.
bit 연산 (bitwise operation)으로 조건을 판단.



버스 : 공통된 노선을 갖는 대형통로., 공용통로
모두가 사용하는 공공 교통수단이며, 많은 사람들이 각지역으로 한꺼번에 이동되는 역할

객체와 객체 사이에 전달되는 데이터 값을 메시지라고 부름.
메시지들이 공통적으로 정의된 데이터 형식으로 일정 메모리를 점유할 수 있도록 만들면 그공간은 버스
'메시지 버스' 라고 말함.

윈도우즈에서 그림을 복사한후 다른 프로그램에서 붙여넣기를 할때
OLE (object linking & embadding) 기술을 이용하는데 이 때 이 개념도 메시지 버스의 한 종류.
D(ata) Bus : 최근 많이 사용. 

왜 메시지 버스가 필요한가?
 예) 지하철 수하물 공간. 유료로 1000원을 넣고 짐을 넣어둔 후 비밀번호를 걸어두면 비번을 아는 사람끼리 내부에 넣어둔 물건을 공유할 수 있음. BUT 누가 필요로 하는지 , 누가 사용할지는 아무도 모름.
특정 프로그램에서 객체를 복사할떄, 객체의 데이를 버스에 저장.
어떤 프로그램에 붙여넣기 할지는, 복사하는 순간 컴퓨터가 알 수 없습니다.

by j 모 멘토님의 메일 .ㅋ..(요약하려고 했는데 다써버림._)



D bus ?
D-Bus은 Desktop Bus의 약자로 사용 목적은 어플리케이션 간의 IPC(Inter-Process Communication)을 제공하는 메시지 버스 시스템이다. 즉, 로컬 컴퓨터에서 통신하기 위한 목적이 강하다. 원래는 KDE의 DCOP에서 영향을 받아서 지금의 D-Bus가 생겨났다고 하니만 DCOP이 뭔지 모르니 패스! // http://ospace.tistory.com/209



저작자 표시 비영리 변경 금지
Posted by 만솜