2011-01-09 5 views
0

iphone 사용 가능한 메모리를 감지 할 수 있습니까? 앱 실행시 메모리가 부족한 지에 따라 다시 시작하도록 상기시킬 수 있습니까?iphone 사용 가능한 메모리 감지하기

+4

그들은 AirBus 380 용 소프트웨어를 작성하지 않아도됩니다 .... –

답변

8

왜 사용자가 강제로 휴대 전화를 재부팅하겠습니까? 그것은 끔찍한 생각입니다. 앱이 일부 앱을 할당하려고 할 때 기기의 메모리가 가득차면 os는 귀하와 필수 서비스가 모두 남을 때까지 메모리에서 다른 앱을 덤프합니다. 그런 다음 메모리 경고를 받게됩니다. 어떤 시점에서 귀하의 앱과 필수 서비스가 실행 중입니다. 장치를 재부팅해도 문제가 해결되지 않습니다.

+0

Cool. 나는 강제로하고 싶지 않았다. 나는 단지 미리 알림 메시지가 표시 될 수 있다고 생각했다. – jarryd

+0

이것은 내 경험과 일치하지 않습니다. OS가 메모리를 확보 할 수있는 속도보다 빠르게 메모리를 할당하고 있습니다. 그렇지 않으면 재부팅 후 내 응용 프로그램이 20MB 이상을 소비 할 수 있지만 그렇지 않은 경우 OS가 훨씬 빨리 메모리를 종료합니다 아닙니다. –

+0

당신이 그 시나리오에 도달한다면, 아마도 당신은 새고있을 것입니다. 누출 도구를 실행하고 플러그를 꽂아 야합니다. – BadPirate

0

나는 당신이 찾고있는 메모리가 무엇인지 잘 모르겠다 : RAM이나 디스크. 그러나 아래의 코드는 여러분이 찾고있는 것을 얻기 위해 도움이 될 것입니다. NSString *을 반환 값으로 무시하십시오. 그들은 쉬운 인쇄를위한 것이 었습니다. 당신이 당신의 응용 프로그램에 더 많은 메모리를 확보하는 데 필요한 모든 캐시를 제거 할 수있는 기회를 줄 것이다, 메모리가 부족할 경우

아이폰에
- (NSString*) totalMemory 
{ 
    NSString* v; 
    v = [NSString stringWithFormat:@"%d", [[UIDevice currentDevice] totalMemory]]; 
    return v; 
} 


- (NSString*) userMemory 
{ 
    NSString* value; 
    value = [NSString stringWithFormat:@"%d", [[UIDevice currentDevice] userMemory]]; 
    return value; 
} 


- (NSString*) freeMemory 
{ 
    NSString* value; 
    value = [NSString stringWithFormat:@"%d", [UIDevice freeMemory]]; 
    return value; 
} 


- (NSString*) totalDiskSpace 
{ 
    NSNumber* totDiskSpace= [[UIDevice currentDevice] totalDiskSpace]; 
    NSString* value = [totDiskSpace stringValue]; 
    return value; 
} 


- (NSString*) freeDiskSpace 
{ 
    NSNumber* theFreeDiskSpace= [[UIDevice currentDevice] freeDiskSpace]; 
    NSString* value = [theFreeDiskSpace stringValue]; 
    return value; 
} 
+1

코드가 정확합니다. 실제 앱에서 유용 할 것이라는 제안이 잘못되었습니다. – bbum

+0

cool. thanks bbum :-) – Viren

+0

환상적인 정보, 고마워요 Viren – Fattie

2

,보기는 -(void) UIViewController :didReceiveMemoryWarning를 받게됩니다. 선행 사용 가능한 메모리가 충분하지 않은 경우 시작하지 않으려 고하는 것이 가장 좋습니다. 실제로 사용 가능한 메모리의 양을 탐지하는 것은 까다로운 일입니다. 프로세스가 할당 할 수있는 최대 메모리 양을 얻을 수는있을지라도, 그 메모리 중 일부는 malloc과 app 프레임 워크에 의해 사용되기 때문입니다.

추신. 사용자의 재부팅을 강요하는 것은 끔찍한 사용자 경험이며 메모리가 부족한 경우 응용 프로그램이 자동 종료되므로 사용자를 강제로 재부팅 할 필요가 없습니다.

+0

대기 - "메모리가 부족하면 응용 프로그램이 자동 종료됩니다" 그리고 "사용자를 재부팅하도록 강요 할 충분한 이유가 없다"는 것은 바로 모순 된 것처럼 보입니다 ... –

관련 문제