从一个视图控制器向另一个视图控制器传递可变数组时,我收到内存警告。 任何更好的方式将可变数组传递给uiviewcontroller? //记忆警告在这里。将数组传递给UIViewController和内存警告
Item *item = [self.items objectAtIndex:index ];
从一个视图控制器向另一个视图控制器传递可变数组时,我收到内存警告。 任何更好的方式将可变数组传递给uiviewcontroller? //记忆警告在这里。将数组传递给UIViewController和内存警告
Item *item = [self.items objectAtIndex:index ];
传递一个NSMutableArray的从视图控制器A到B的最好办法是做在SEGUE来自ViewControllerA
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Some segue"])
{
[segue.destinationViewController setPassedArray:self.someMutableArray];
}
}
而在你ViewControllerB
添加到您的ViewControllerB.h
文件现在
@property(nonatomic, strong) NSMutableArray *passedArray
当过您导航到ViewControllerB
someMutableArray
将传递给ViewControllerB并设置为passedArray
当A控制器推B控制器时你可以序列化数组。
-(void)viewDidDisappear:(BOOL)animated
{
NSArray* array = .....
[array addObject:obj];//obj have to implements NSCopying,NSCoding
NSData *archiveCarPriceData = [NSKeyedArchiver archivedDataWithRootObject:array];
[[NSUserDefaults standardUserDefaults] setObject:archiveCarPriceData forKey:@"your key"];
}
B控制:
-(void)viewDidLoad
{
NSData *myEncodedObject = [[NSUserDefaults standardUserDefaults] objectForKey:@"your key"];
NSArray* array = [NSKeyedUnarchiver unarchiveObjectWithData: myEncodedObject];
}
,或者你可以将它保存在文件
{
//save arr to file
NSArray* arr;
[arr writeToFile:@"path" atomically:YES];
//read arr from file
arr = [NSArray arrayWithContentsOfFile:@"path"]
}
一个的viewController =>保存文件阵列.B的viewController = >从文件 – zt9788
读取Arry你可以发布与传递数组到视图控制器有关的代码吗? –