Я должен использовать привязку Какао для своего последнего проекта?

Я ценю, что вы новичок в кодировании. Добро пожаловать, и я надеюсь, вам понравится.

Я немного реорганизовал код, чтобы сделать его более простым и безошибочным:

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            ProcessNumbers();
        }

        private static void ProcessNumbers()
        {
            var myList = new List<int>();
            string sinput = String.Empty;
            var number = 0;
            do
            {
                try
                {
                    Console.Write("Write the number you would like to add to your list (type stop when you are done): ");
                    var input = Console.ReadLine();

                    if(input != "stop")
                    {
                        number = int.Parse(input);
                        myList.Add(number);
                    }
                    else
                    {
                        sinput = input;
                    }
                }
                catch
                {
                    Console.WriteLine("ERROR: You typed a letter instead of a number, try again!");
                }

            } while (sinput != "stop");

            var sum = myList.Sum();
            Console.WriteLine("The sum of all your numbers is: " + sum);
            Console.Write("Press any key to exist...");
            Console.ReadKey();
        }
    }
}

По сути, он будет постоянно просить пользователя вводить цифры до тех пор, пока пользователь не прекратит ввод. В конце он покажет сумму всех чисел в результате. Дайте мне знать, если у вас есть какие-либо вопросы по поводу кода.

10
задан Quinn Taylor 30 June 2009 в 20:08
поделиться

7 ответов

Используйте привязку.

Обратите внимание, что необходимо следовать за шаблоном MVC для получения максимума от привязки. Это легче, чем это кажется, поскольку Какао делает почти все для Вас в наше время:

  1. Посмотреть: NSView и подклассы (конечно), NSCell и подклассы, NSWindow и подклассы
  2. Контроллер: NSController и подклассы (особенно NSArrayController)
  3. Модель: базовые данные

Если Вы не собираетесь использовать Базовые Данные, то Вы добираетесь до объектов модели самокрутки, но это легко. Большинство методов этих объектов будет простыми средствами доступа, которые Вы можете просто @synthesize если Вы нацелены на Leopard.

Вам обычно не может сходить с рук не написание никакого кода, но Привязка может позволить Вам написать очень мало кода.

Рекомендуемое чтение:

21
ответ дан 3 December 2019 в 13:41
поделиться

Привязка может казаться волшебной по своей природе. Для понимания волшебства позади привязки я думаю, что нужно понять KVC/KVO полностью. Я действительно имею в виду полностью.

Однако в моем случае (в новинку для Obj-C - 9 месяцев), после того как я добрался, привязка KVC/KVO были острые ощущения. Это значительно уменьшило мой код связующего звена и сделало мою жизнь значительно легче. Отладка привязки стала случаем проверки, что мои изменения значения ключа были заметны. Я нахожу, что могу провести больше времени, пишущий то, что мое приложение, как предполагается, делает вместо того, чтобы удостовериться, что представление отражает данные.

Я действительно соглашаюсь, хотя это привязка очень пугающе сначала.

8
ответ дан 3 December 2019 в 13:41
поделиться

Через некоторое время работы с Привязкой я нашел, что это не волшебно вообще, думал, что это - достаточно передовая технология. Отладка связанного интерфейса берет различные методы, чем склеенный интерфейс, но после того как у Вас есть те методы, преимущества с точки зрения повторного использования, пригодности для обслуживания и непротиворечивости IMO значительный.

4
ответ дан 3 December 2019 в 13:41
поделиться

Мой общий подход должен начать как можно больше использовать привязку и видеть, как идут дела. Однако, если конкретный интерфейсный элемент начинает становиться проблематичной привязкой использования или большим усилием, чем это стоит, затем я, отступите к использованию более традиционных методов (например, источники данных, действия), когда это имеет смысл. Я нашел, что эти вещи может быть довольно трудно предсказать заранее, но я думаю, одобряя привязку, лучше в конечном счете, пока Вы не становитесь слишком догматичными о том, чтобы придерживаться их в ситуациях, когда они не предоставляют преимущества.

5
ответ дан 3 December 2019 в 13:41
поделиться

Кажется, что я использую привязку, KVO и методы источника данных все об одинаково в моих приложениях. Это действительно зависит от контекста. Например, в одном из моих проектов я использую привязку примерно везде кроме представления схемы главного окна, которое достаточно сложно, что я не хотел бы даже пытаться вместить его в NSTreeController. В то же время я также использую KVO для перезагрузки объектов пользовательского интерфейса и зависимостей дорожки в моих объектах модели.

Важная вещь иметь в виду при изучении усовершенствованных тем Какао как Привязка или Базовые Данные состоит в том, что необходимо понять все технологии позади них; все из протоколов источника данных, уведомлений KVO, и таким образом, один. После того как у Вас было достаточно опыта при работе с ними, чтобы знать, как "волшебство" работает, Вы сможете интегрировать высокоуровневый материал в свое приложение легко.

В Вашем особом случае необходимо будет решить, стоит ли это дополнительного времени для изучения привязки сверх разработки приложения. Если возможно, это могло бы принести пользу Вам для разработки упрощенного прототипа приложения с помощью привязки, таким образом, Вы знаете, как лучше всего соответствовать частям вместе при запуске фактического проекта.

2
ответ дан 3 December 2019 в 13:41
поделиться

Мое мнение - то, что да, необходимо принять привязку; технология хорошо понята и стабильна теперь, и это стоит сделать для объема кода, который Вы больше не должны писать. Когда я сначала переключился на привязку, я испытал довольно мало затруднений заставить время жизни наблюдения и наблюдаемых объектов совпадать, и с поломками UI, потому что это наблюдало доступный объект, но неправильный. После того как Вы видели те проблемы пару раз, зная, как избежать их и как определить их, если они действительно появляются, становится простым. Выход. Я все еще желаю "этого события, здесь вызвал это обновление здесь" трассировки в отладчике, но я все еще рад, что сделал перемещение.

2
ответ дан 3 December 2019 в 13:41
поделиться

Для любопытного я действительно заканчивал тем, что использовал привязку и после нескольких дней, они внезапно только что начали "иметь смысл". Таким образом, я определенно рекомендовал бы просто идти вперед и занять время для изучения их.

Я также нашел совет Brian Webster довольно полезным, поскольку я действительно заканчивал тем, что делал горстку вещей старомодный путь или потому что привязка не могла сделать то, что я хотел или потому что он будет непомерно сложным, чтобы сделать то, что мне была нужна привязка использования.

1
ответ дан 3 December 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: