Я хочу взять, скажем, цену акции, а затем сгенерировать значения в пределах 0,05% в 2D-массиве.
Я передаю информацию об акции, такую как название акции и цена акции.
Но когда я пытаюсь запустить метод, который создает двумерный массив значений, я встречаюсь с сообщением «Невозможно использовать член экземпляра» в инициализаторе свойства; инициализаторы свойств запускаются до того, как «self» станет доступным »
Я искал как это обойти.
Скажем, акции Amazon составляют 2400. Эти данные передаются в новое представление. Я хочу создать 2D-массив значений около 2400, возможно, 2405 и 2395. Мне нужен 2D-массив этих значений, сгенерированный в новом представлении. Но я получаю сообщение об ошибке, что я не могу сгенерировать значения, пока представление не будет загружено, но они мне нужны для создания представления.
Я думаю, мне нужно использовать метод init, но я не уверен, как это сделать.
Это строка, которая вызывает ошибку выше.
var new_prices = generateValues(price: position.stock_price)
Вот метод
func generateValues(price: Double) -> [[Double]] {
var values = [[Double]]()
for x in 1...5 {
values[0][x-1] = (price + price * 0.005 * Double(x))
}
return values
}
Это то, что передается в стандартной позиции
struct Position : Identifiable {
var id = UUID()
var stock_name: String
var stock_ticker: String
var stock_price: Double
var price_paid: Double
}
Переданные аргументы вызывают ошибку при отсутствии аргумента init ().
struct PositionDetail_Previews: PreviewProvider {
static var previews: some View {
PositionDetail(position: Position(stock_name: "Amazon",
stock_ticker: "AMZN", stock_price : 2400, price_paid : 2300))
}
}