On Oct 9, 2011, at 9:41 AM, Peter Hudson wrote:
> For a long time ( in xcode 3 ) when I want to access a table view data
> source ( in the sub class code for the table view ) I simply called [self
> dataSource]
> I would then call methods declared and implemented on the class which I new
> to be the datasource. This worked fine.
>
> In xcode 4 ( sdk 10.7 ) the compiler throws a semantic warning when I do
> this. It complains that the return value from [self dataSource] is ignorant
> of the methods I am calling on it.
This probably happened because you changed the base SDK from 10.5 to 10.6+.
In the 10.6 SDK Apple introduced @protocols for most delegates/data-sources/etc
instead of making them “informal protocols” aka categories. So the
-delegate/-dataSource properties now no longer return an untyped “id” but a
typed protocol reference like “id<NSTableViewDataSource>”. The benefit is that
the compiler can now type-check it. The drawback is that the compiler will now
type-check it :)
If you know your data source is of, say, class MyDataSource, then all you need
to do is add a cast:
[(MyDataSource*)[self dataSource] myCustomMethod]
—Jens
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]