Итак, у меня есть недельные, ежемесячные и годовые планы подписки. То, что я хочу сделать, основано на еженедельной цене, я хочу сохранить проценты за месяц и год.
- (NSString *)weeklyPrice:(SKProduct *)product {
CGFloat factor = 0.23; //week factor 30/7 (30days divide by 7 days)
if([product.productIdentifier isEqualToString:AR_WEEKLY_SUBSCRIPTION_PRODUCT_ID] ||) {
factor = 0.23;
_weeklyPrice = product.price;
}
else if([product.productIdentifier isEqualToString:AR_MONTLY_3DAY_SUBSCRIPTION_PRODUCT_ID]) {
factor = 1.0;
}
else if([product.productIdentifier isEqualToString:AR_YEARLY_3DAY_SUBSCRIPTION_PRODUCT_ID] ) {
factor = 12.0;
}
NSLog(@"divide by %@",[NSDecimalNumber decimalNumberWithMantissa:factor exponent:0 isNegative:NO]); // here value getting 0 hence giving exception
NSDecimalNumber *weeklyPrice = [product.price decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithMantissa:factor exponent:0 isNegative:NO]];
NSNumberFormatter *numberFormatter = [NSNumberFormatter new];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setLocale:product.priceLocale];
return [NSString stringWithFormat:@"%@/week", [numberFormatter stringFromNumber:weeklyPrice]];
}
Для процентов экономии, используя приведенный ниже блок кода
(NSString *)savingPercent:(SKProduct *)product {
CGFloat factor = 0.23;
//NSDecimalNumber *saving = nil;
if([product.productIdentifier isEqualToString:AR_WEEKLY_SUBSCRIPTION_PRODUCT_ID] ) {
return @"";
}
else if([product.productIdentifier isEqualToString:AR_MONTLY_3DAY_SUBSCRIPTION_PRODUCT_ID]) {
factor = 1.0;
}
else if([product.productIdentifier isEqualToString:AR_YEARLY_3DAY_SUBSCRIPTION_PRODUCT_ID] ) {
factor = 12.0;
}
CGFloat saving = 100.0-((product.price.floatValue/factor/_weeklyPrice.floatValue)*100);
return [NSString stringWithFormat:@"SAVE %.0f%%", saving];
}
, как на этом рисунке показано сохранение в процентах Любые предложения будут полезны в режиме