Unclear on the section about Array proxy

I’ve looked at the section on proxys and the various property names that KVC will look for a number of times. How are functions getting called

The basic idea is that when you call mutableArrayValueForKey(_:slight_smile: you are given a proxy object. When you call methods on the proxy object, it translates those into message sends to the original object. This gives us a convenient means of hooking in to observing changes that are made by the array controller.

Do you have a question about any of the methods in particular?

I’m trying to understand this concept as well.
In playground, I made a class called Playlist. It initializes with an empty array songs of Strings and a property called countOfSongs set to 2. I create an instance of Playlist called myPlayList, and append four Strings to songs.

I then create arrayProxy using myPlayList.mutableArrayValueForKey(“songs”). The book says that arrayProxy.count should return the value of countOfSongs, since I have a property defined with that name. But instead it returns the count of the array of songs.

What am I missing here?

Thanks for any help.