Звучит так, будто вы сделали это слишком сложным. Очевидно, что идея на самом деле не «есть переменная с именем totalSave
», так как пользователь может заботиться о том, где вы ее храните, и от остальной части вашего сообщения, вам на самом деле все равно, как вы его храните.
При этом, чтобы сделать это более конкретным, давайте подумаем о состоянии «общей оценки», которое могут добавить многочисленные части программы. Есть несколько подходов, которые вы можете предпринять. В любом случае у вас, вероятно, есть какой-то объект, который отслеживает счет. Мы назовем его объектом Game
, но это может быть Level
или что-то еще.
Итак, есть три большие школы мысли: вы можете передать этот объект Game
всем, у вас может быть синглтон Game
, или вы можете использовать оповещения. Каждый из этих подходов имеет свои преимущества, и любой, кого вы выбираете, вероятно, подходит для простой программы (лично, для очень простой программы, я бы использовал синглтон).
В первой схеме, в какой-то момент в программе вы создаете объект Game
, который имеет некоторый метод addToScore:
. Вы назначаете этот объект как свойство для каждого другого объекта, который должен обновить счет. Каждый из этих звонков [self.game addToScore:value]
. Этот подход упрощает модульное тестирование, но может быть немного утомительным для реализации.
Во второй схеме у вас есть shared singleton+[Game sharedGame]
. Когда вы хотите обновить счет, звоните [[Game sharedGame] addToScore:value]
. Это, как правило, easiet для реализации.
В третьей схеме у вас есть объект (Game
), который использует NSNotificationCenter
для получения уведомления. Когда вы хотите обновить счет, вы просто публикуете уведомление, которое включает сумму, которую нужно добавить в свой пользовательский словарь. Это отлично подходит для того, чтобы держать вещи в высшей степени разобщенными, но снова может быть немного утомительным в более обычном случае.
Но, как отмечает @Chuck, вы, вероятно, слишком задумываетесь об этом, и вам, возможно, захочется вернуться и поработать над некоторыми учебниками, чтобы лучше понять, как эти вещи обычно работают. Типичная ситуация, которую вы описываете, не очень сложна.
Вам необходимо сообщить начало кода, или люди не будут отвечать –
Я думаю, что вы делаете это сложнее в своей голове, чем должно быть.Разве вы просто не пытаетесь создать программу, которая добавляет значение через пользовательское вмененное суммирование? Просто создайте приватный int, называемый totalSave, в своем классе и добавьте к нему свой метод. – zgc7009
Я пропустил после прочтения этого сообщения, но все же хочу сообщить вам, что вы обычно хотите использовать NSInteger, когда не знаете, на какой процессорной архитектуре может работать ваш код, поэтому вы можете по какой-либо причине захотеть максимально возможного int, который на 32-битных системах - это просто int, а в 64-битной системе - длинный. –