2014-01-10 2 views
0

2 개의 RSS 피드에서 정보를 다운로드해야하는 애플리케이션을 만들고 있습니다.다운로드 콘텐츠에서 데이터 대역폭을 절약하기 위해 NSArray를 전체적으로 저장하십시오.

그러나 이러한 피드는 전체 앱에서 사용되는 정보를 가지며 사용자가 선택한 UIViewController을 볼 필요가있을 때 다시로드되거나 다시로드되지 않을 수 있습니다.

그래서 제 질문은 없습니다 :

UIAppDelegate에서 응용 프로그램로드에서 이러한 배열을 설정하는 것이 좋습니다이거나 그 큰 아뇨 성능에 관해서?

코드가 작동합니다. 데이터 사용량을 최소화하기 위해 실행하는 것이 가장 좋으며 동시에 앱 전체에서 가장 잘 액세스 할 수있는 곳이 무엇인지 알고 싶습니다.

이 작업을 다시 수행해야 할 경우 많은 코드를 이동해야하므로 도움이 될 것입니다. 조언 해 주셔서 감사합니다.

추신 : 나는 할 수있는 일은 많이하고 있고, 그래서이 연구를 통해 개발자들의 의견을 듣고 있습니다. 나는 어떤 규칙이나 화가를 깨뜨리지 않기를 바랍니다 :-)

+4

언제나 UIAppDelegate를 검색하는 대신 싱글 클라스 솔루션을 사용하고 액세스하는 모든 단일 클래스에서 액세스하려는 경우 –

+0

싱글 톤은 내가 원하는만큼 커질 수 있습니까? RSS 피드를 배열에로드하는 것은 약간의 코드입니다. –

+0

물론 - 많은 코드가 있다면 코드를 생성하여 싱글 톤에 연결할 클래스로 캡슐화 할 수 있습니다. –

답변

0

파일을 NSObject로 생성하려면 다음과 같이하십시오.

@interface myData : NSObject 
{ 
    NSMutableArray *myDataArray; 
} 

@property (nonatomic, retain) NSMutableArray *myDataArray; 

+ (myData *)sharedData; 

@end 

그런 다음하는 .m 단순히 "myData.h"그리고 당신이이 작업을 수행 할 필요가있을 때 # import를, 당신의 벤처 캐피탈의 각 그런 다음이

#import “myData.h” 

static myData *sharedData; 

@implementation myData 

@synthesize myDataArray; 

+ (myData *)sharedData 
{ 

    if(!sharedData) 
    { 
     sharedData = [[myData alloc] init]; 
    } 
    return sharedData; 
} 

- (id)init 
{ 
    self = [super init]; 
    if(self) 
    { 
     myDataArray = [[NSMutableArray alloc] init]; 

    } 
    return self; 
} 

를 추가;

myData *localShared = [myData sharedData]; 

localShared.myDataArray = // This is your array and will look the same throughout 
NSString *myStringObj = localShared.myDataArray[4]; // So you can do this kind of stuff 

메모리에서 나는 테스트하지 않았지만 이것이 매우 가깝다고 생각합니다. 희망이 도움이됩니다.

+0

이 단순함 덕분에 고맙다. –

+0

괜찮 았는데 :-) 알았어 :-) 데이터를 또 다른 방법으로 생성하기 때문에 (NSLog로 체크해도) 생성 할 수 있기 때문에 다른 ViewController로 데이터를 전송하는 방법을 알아 내야한다. –

+1

필요한 모든 VC에있는 각 메소드의 마지막 부분 만 있으면됩니다. 로컬 VC의 배열에 복사하고 다시 한 라인 (myData * localShare = [myData sharedData];)을 사용하면 해당 메서드에서 사용할 수있는 localShare가 만들어지고 다른 메서드에 대해서만 반복됩니다. –

관련 문제