There are two different things in security - encryption and signing. You encrypt if you don't want someone to see the data. You sign if you don't want someone to change the data. You wrote:
"We dont want users to tamper with the savefiles"
If that is correct all you need to do is sign the data. You do not need to encrypt.
To sign data:
-(NSString *)signatureForArray:(NSArray *)theArray{
NSError *error;
NSMutableArray *fullArray=[NSMutableArray arrayWithArray:theArray];
[fullArray addObject:@"replace this with a secret salt string"];
NSData *data =[NSPropertyListSerialization dataWithPropertyList:fullArray format:NSPropertyListXMLFormat_v1_0 options:0 error:&error ];
unsigned char result[CC_SHA1_DIGEST_LENGTH];
CC_SHA1([data bytes], (unsigned int)[data length], result);
NSString *fileHash = [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3], result[4],
result[5], result[6], result[7],
result[8], result[9], result[10], result[11], result[12],
result[13], result[14], result[15],
result[16], result[17], result[18], result[19]
];
return fileHash;
}
Then save the signature string along with the array. Anytime you wish to use the array first check to be sure the returned signature is still the correct signature. If it is, the user did not change the array.