Probably what you need to do is wait for the process to get completed and the block literally doesn't know what your doing inside it or i would say the inside function is not been captured by the block.so use the array(call the function which is using your array) only after block gets completed.
Example:
TBXMLSuccessBlock s = ^(TBXML *tbxml) {
NSLog(@"yes");
// Do something with TBXML object "tbxml/add it ur array
//Here you call the function which is about to use your array.
};
//Not outside the block.
EDIT : Refer this==> How do I avoid capturing self in blocks when implementing an API?