2012-11-30 42 views

回答

1

簡單地聲明一個這樣的靜態數組!

static NSMutableArray *staticArray = nil; 

void FillArray() { 
    if(staticArray == nil) { 
     staticArray = [[NSMutableArray aloc] init]; 
    } 
} 

當你沒有孤獨者需要它!記得發佈它!

void FreeArray() { 
    [staticArray release]; 
    staticArray = nil; 
} 
+1

請注意,除非您使用ARC,否則這不是線程安全的;您需要進行適當的互斥(例如NSLock,@synchronize,dispatch_sync)或使用dispatch_once或pthread_once之類的東西。即使使用ARC,如果初始化數組的開銷很大(或者有副作用),則無論如何您都需要進行互斥。 –

0

使其成爲靜態/共享/全局。

@implementation MySingleton static NSMutableArray * _sharedMySingletonArray = nil;

+(MySingleton*)sharedMySingleton 
{ 
    @synchronized([MySingleton class]) 
    { 
     if (!_sharedMySingletonArray) 
      [[self alloc] init]; 

     return _sharedMySingletonArray; 
    } 

    return nil; 
} 
@end 
+0

你可以舉一些例子來製作一個靜態的數組。我無法做到這一點 – Mayank