【发布时间】:2015-08-14 01:33:46
【问题描述】:
我有一个 MATLAB 对象,类似于:
classdef myObj < handle
properties (SetObservable)
% NOTE: we want this to be a struct, as written, its not
myStruct
end
methods
function self = myObj(fieldVal)
self.myStruct = fieldVal;
% WANT: self.myStruct.myField = fieldVal;
% add listener to update if change to self.myStruct
% WANT: add listener to update if change to
% self.myStruct.myField
addlistener(self, 'myStruct', 'PostSet', @self.callbackFnc);
end
function callbackFnc(self, varargin)
fprintf(['self.myStruct is now ', num2str(self.myStruct), '\n'])
end
end
end
它有一个实例属性的监听器(乐观地命名为myStruct)。这给出了:
>> tempObj = myObj(3);
>> tempObj.myStruct = 4;
self.myStruct is now 4
如何将侦听器设置为 self.myStruct 而不是 self.myStruct 本身的字段?
【问题讨论】: