Am I using my data source array correctly?
Yes. Everything seems correct here. 

Like you mention yourself: make sure you use self.dataSourceArray to assign new values, and the synthesized setter will take care of memory management.