From the sound of it, I'm guessing you haven't initialized the obstacles
array with a line like this:
obstacles = [NSMutableArray array];
Set a breakpoint and check if the obstacles
variable is non-nil.
Other than that the code looks okay. Except you should prefer to use fast enumeration - it's safer (index out of bounds can not occur), faster and easier to read:
for (SKSpriteNode* obstacle in obstacles)
{
NSLog(@"Removed an Obstacle");
if (obstacle.position.y < 0)
{
[obstacle removeFromParent];
}
}