ошибка: свойство 'myBoolVariableName' с 'сохраняет' атрибут, должен иметь тип объекта

Я написал статью, которая объясняет, как расширить Отличную функцию так, чтобы можно было сделать следующим образом:

var people = new List();

people.Add(new Person(1, "a", "b"));
people.Add(new Person(2, "c", "d"));
people.Add(new Person(1, "a", "b"));

foreach (var person in people.Distinct(p => p.ID))
    // Do stuff with unique list here.

Вот статья: Расширение LINQ - Определение Свойства в Отличной Функции

12
задан Neo42 27 August 2009 в 00:21
поделиться

1 ответ

Я ' я предполагаю, что позже в вашем интерфейсе у вас будет что-то вроде этого:

@property (retain) BOOL *myBoolVariableName;

Это означает создать свойство, значение которого является указателем на BOOL, и использовать семантику сохранения.

Ваша проблема в том, что BOOL * является указателем на байт памяти, а не указатель на объект. И сохранить - это то, что применимо только к объектам.

Вот как вы можете создать свойство BOOL.

@interface myCustomViewController : UIViewController <UIWebViewDelegate> {
    BOOL myBoolVariableName;
}

@property myBoolVariableName;

@end

Важные отличия заключаются в том, что переменная объявляется как «BOOL», а не как «BOOL *», и свойство не иметь (сохранять).

33
ответ дан 2 December 2019 в 04:25
поделиться