NSProcessInfo 클래스 이용해서 프로세스 ID 찍어보자


NSProcessInfo 를 이용하여 아래와 같이 프로세스명, 프로세스ID를 출력하라

Process Name: 'WhatATool' Process ID: '4556'


클래스 리퍼런스를 참조하니 processNameprocessIdentifier라는 그럴듯한 메소드가 있다.


<시도 1>

NSProcessInfo *pInfo = [NSProcessInfo processInfo];

NSLog(@"Process Name: '%@' Process ID: '%@'", [pInfo processName], [pInfo processIdentifier]);


<결과>

실패.... 컴파일 에러는 안나지만 프로그램 시작후 이상한 메세지가 뜬 상태로 안끝난다...


<시도 2>

프린트할 ID부분의 포멧을 %@ (오브젝트) 에서 %i (정수형)으로 바꿔봤다.

NSLog(@"Process Name: '%@' Process ID: '%i'", [pInfo processName], [pInfo processIdentifier]);


<결과>

성공!!!



출처 : http://blog.naver.com/PostView.nhn?blogId=katchup00&logNo=10075722816
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 22. 17:53
과제B.2 - 프로세스 ID 찍어보기 (NSProcessInfo 클래스 이용)

[과제B Section 2] 프로세스 ID 찍어보기 (NSProcessInfo 클래스 이용)

NSProcessInfo 를 이용하여 아래와 같이 프로세스명, 프로세스ID를 출력하라

Process Name: 'WhatATool' Process ID: '4556'


클래스 리퍼런스를 참조하니 processNameprocessIdentifier라는 그럴듯한 메소드가 있다.


<시도 1>

NSProcessInfo *pInfo = [NSProcessInfo processInfo];

NSLog(@"Process Name: '%@' Process ID: '%@'", [pInfo processName], [pInfo processIdentifier]);


<결과>

실패.... 컴파일 에러는 안나지만 프로그램 시작후 이상한 메세지가 뜬 상태로 안끝난다...


<시도 2>

프린트할 ID부분의 포멧을 %@ (오브젝트) 에서 %i (정수형)으로 바꿔봤다.

NSLog(@"Process Name: '%@' Process ID: '%i'", [pInfo processName], [pInfo processIdentifier]);


<결과>

성공!!!



출처 : http://blog.naver.com/PostView.nhn?blogId=katchup00&logNo=10075722816
Posted by 오늘마감

댓글을 달아 주세요

오브젝트C2010. 6. 21. 09:31
[펌] id 타입에 대해서...
The id types

    • void* 와 같은 역할을 하는 Objective-C의 type
    • 오브젝트의 메소드를 호출할 때 타입을 알 필요가 없음.
    • 타입은 메시지 파싱(message parsing)에 맡김
    • dynamic binding의 명백한 장점
    • id 타입으로 선언한 변수에 대해서는 어떠한 메소드 호출도 기술 가능
      =
      > id 타입변수는 모든 메소드를 호출할 수는 있다. 호출 할 수 없는, 또는 선언되지 않은 메소드 호출시 경고
    • id 타입으로 선언한 변수와 클래스명을 타입으로 선언한 변수(클래스의 객체변수?)간 상호 대입이 가능
      => id타입변수에 클래스 객체를 대입할 수 있다. 골치 아픈 캐스팅 문제에 대해서 고민하지 않아도 된다.
    • 클래스명을 타입으로 사용해서 변수 선언을 하면, 그 클래스가 대응할 수 있는 것 외에 메소드 호출에 대해 경고 나옴.
      =>클래스객체를 id타입변수로 이용하고 있는데, 클래스에 선언되지 않은 메소드를 호출하면 경고가 발생함.
    • 클래스명을 타입으로 사용한 변수에 그 클래스의 서브클래스(상속받은 하위 클래스)를 타입으로 하는 변수를 대입할 수 있음.
    • 클래스명을 타입으로 사용한 변수에 그 클래서의 슈퍼클래스를 타입으로 하는 변수를 대입하지 못함. 
    • 프로그램 코드 상의 선언에 관계없이 런타임에서 실제로 변수에 들어있는 객체의 메소드가 실행됨.(dynamic binding?)
    • id 타입은 (NSObject*) 타입이 아님.
    • nil은 NULL 오브젝트 포인터. 이때 id의 값은 '0'임 (id)0
    • NIL은 NULL 클래스 포인터. (Class)0
    • 'id', 'nil' 등과 같은 기본적인 타입정의는 헤더파일 'objc.h'(~/Library/Headers/obj에 위치)에 정의 되어 있음.




출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110086764717
Posted by 오늘마감

댓글을 달아 주세요