Функции C и доступ к переменным экземпляра Objective-C.

#objective-c #c #instance-variables

#objective-c #c #переменные экземпляра

Вопрос:

У меня есть свойство a, объявленное в .h как

 @property (nonatomic, assign) int timeSig_Numerator;
  

и переменная экземпляра, объявленная в .h как

 int mTimeSig_Numerator;
  

в .m я синтезирую с

 @synthesize timeSig_Numerator = mTimeSig_Numerator;
  

У меня есть функция C, объявленная перед синтезом, и мне нужно использовать mTimeSig_Numerator. каков наилучший способ сделать переменную экземпляра видимой для моей функции C, не передавая ее в качестве аргумента функции?

Ответ №1:

Поскольку mTimeSig_Numerator это переменная экземпляра, каждый экземпляр вашего класса имеет свою собственную mTimeSig_Numerator . Поскольку функция C отделена от любого данного класса / class instance, как она узнает, из какого экземпляра она должна получить mTimeSig_Numerator ?

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

Комментарии:

1. Понятно, я не думал о том, что функция C не является «частью» класса. Спасибо.