由于記憶體很小,是以我們要有技巧的利用記憶體。
原則一,常用的資料放在記憶體當中,不常用的用的時候才讀入記憶體。
原則二,常用的資料如果太大,則不适宜放在記憶體。
基于上面兩條原則,用一個示例說明。 在開發過程中,圖檔是大量需要的。比如背景圖檔,常用到的,那麼我們就可以用下面的代碼讀取。
UIImage *myImage = [UIImage imageNamed:@"icon.png"];
如果不常用的圖檔,那麼可以用
NSString *path = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"png"];
myImage = [UIImage imageWithContentsOfFile:path];
或用
NSString *fileLocation = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
NSData *imageData = [NSData dataWithContentsOfFile:fileLocation];
[UIImage imageWithData:imageData];
這樣每次都I/O去讀取圖檔資料,而不是把資料放在cache中,不過要記得自己管理記憶體,小心記憶體溢出。