Цель C синтаксис для присвоения значения свойству переменной в Swift - PullRequest
0 голосов
/ 28 мая 2020

Мой текущий проект находится в Objective C, и я хочу сделать его новые реализации на Swift.

В моем классе Objective C мне нужно присвоить значение моему свойству быстрой переменной, но я не знаю синтаксиса для этого. Я хочу присвоить такое значение.

self.pollBarGraph = [[PollBarGraphView alloc] initWithFrame:self.view.frame];

//I want to replace this with obj-c syntax to make it work
        self.pollBarGraph.dataEntries =
        [
           BarEntry(score: 100, title: "A"),
           BarEntry(score: 35, title: "B"),
           BarEntry(score: 55, title: "C"),
           BarEntry(score: 3, title: "D"),
           BarEntry(score: 10, title: "E")
        ]

PollBarGraph - это файл Swift, который я добавил, и внутри него:

class BarEntry: NSObject {
        let score: Int
        let title: String

        init(score: Int, title: String) {
            self.score = score
            self.title = title
        }
    }

    @objc open var dataEntries: [BarEntry] = []{
        didSet {
            //my code
        }
    }

Как я могу присвоить значение моей переменной Swift с использованием синтаксиса Objective C?

1 Ответ

1 голос
/ 28 мая 2020

Во-первых, вам не нужно didSet, потому что у вас уже есть значение, когда вы его назначаете. Вы используете didSet для дополнительных побочных эффектов, когда значение было установлено, например, для некоторых вычислений, аннулирования чего-либо и т.д. c. Но это не тот случай. *. Чтобы использовать его в Objective C, используйте следующий синтаксис:

PollBarGraphView *pb = [[PollBarGraphView alloc] initWithFrame:self.view.frame];
pb.dataEntries = @[
                    [[BarEntry alloc] initWithScore:1 title:@"A"],
                    [[BarEntry alloc] initWithScore:2 title:@"B"],
                    [[BarEntry alloc] initWithScore:3 title:@"C"]
                  ];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...