Это огромная проблема !!!Я потерял сон из-за этого.
Чисто FWIW ... мой голос за "theSaveButton", theButtonAtTheTRRight "" userClickedTheLaunchButton "" doubleClickedOnTheRedBox "и т. Д.
Обычно мы называем все эти процедурысюда.Однако ... часто я просто заставляю их перейти прямо к другой процедуре "launchTheRocket", "saveAFile" и т. Д.
Это оказалось полезным?Это происходит потому, что часто вы хотите запустить ракету самостоятельно ... в этом случае вызовите процедуру launchTheRocket, а не пользователя, нажимающего кнопку, которая запускает ракету.Если вы хотите запустить ракету самостоятельно и вызываете userClickedTheLaunchButton, это не так и выглядит более запутанно в коде.(Вы пытаетесь специально имитировать нажатие на экран, или?) Отладка и т. Д. Намного проще, когда они разделены, так что вы знаете, кто что называл.
Это оказалось немного полезным, например, при сборестатистика.Пользователь запросил запуск ракеты 198 раз, и в целом мы запустили ракету 273 раза.
Более того - это может быть решающим аргументом - скажем, из другой части вашего кода вы запускаете ракету,используя сообщение запуска ракеты.Это делает более понятным, что вы на самом деле делаете это, а не что-то, что связано с кнопкой.И наоборот, концепция userClickedTheLaunchButton может меняться со временем, обычно она может запускать ракету, но иногда она может просто вызвать сообщение, или кто знает, что.
Действительно, нажатие кнопки может также вызвать вспомогательные вещи (возможно, анимациюили тому подобное), и это идеальное место для этого, внутри «clickedTheButton», а также вызова вызывающей функции «launchTheRocket».
Так что я на самом деле выступаю за третье, еще более нелепо сложное решение, состоящее в том, чтобыФункции userDidThis, а затем имеющие отдельные функции startANewGame.Даже если это обычно означает, что первое почти ничего не делает, просто вызывает второе!
Кстати, другой вариант именования будет объединять два ... "topButtonLaunchesRockets" "glowingCubeConnectsSocialWeb" и т. Д.
Наконец!Не забывайте, что обычно вы можете настроить их как действие, которое стилистически меняет все.
[theYellowButton addTarget:.. action:@selector(launchRockets) ..];
[theGreenButton addTarget:.. action:@selector(cleanUpSequence) ..];
[thatAnimatingButtonSallyBuiltForUs addTarget:.. action:@selector(resetAll) ..];
[redGlowingArea addTarget:.. action:@selector(tryGetRatingOnAppStore) ..];
возможно, это лучший способ, документально мудрый!Это один из лучших вопросов, когда-либо задаваемых на SO, спасибо!