0
我有一个通知,其处理程序:忽略不正确的编译器waring?
- (void) addObservers
{
...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleColumnCreated:) name:NNColumnCreated object:nil];
…
}
- (void) handleColumnCreated:(NSNotification*)notification
{
[_formFields makeInfoForColumn:[notification object] FieldInfo:_propertiesViewController.representedObject];
[self setActiveColumn:[notification object]];
}
- (void) setActiveColumn:(id)theColumn
{
if (_activeColumn != nil)
{
[_activeColumn setBackgroundColor:_oldColumnColor];
}
_activeColumn = theColumn;
_oldColumnColor = [_activeColumn backgroundColor];
[_activeColumn setBackgroundColor:[NSColor greenColor]];
[_window makeFirstResponder:theColumn];
[_propertiesViewController setRepresentedColumn:[theColumn info]];
}
在setActiveColumn的最后一行我得到,说我发送给setRepresentedColumn参数警告:类型错误的。然而,当我用调试器跟踪行时,[theColumn info]解析为正确的类型并且行正确执行。
我可以忽略警告,但我不认为这是个好主意。我一直无法弄清楚为什么编译器认为[theColumn info]
产生了错误类型的对象。帮帮我!
不,不,不。 Xcode不做任何事情。编译器发出警告。 – 2012-12-28 20:25:26
可以将不同类型的对象存储在其他对象类型中。仅仅因为调试器正确地解决了一些问题,并不意味着你在程序执行过程中并没有做一些早期的事情。 – CodaFi
如何创建列,如何填充'info'字段,以及如何声明'setRepresentedColumn:'?其余的问题只是噪音。 – bbum