Remember, stringByAppendingString: is an NSString method, not NSMutableString. As such, it can't modify the receiver. It returns an autoreleased string that contains the text of the receiver as well as the argument.
So what you want is hexSymbol = [hexSymbol stringByAppendingString:hex]. Or you could just go with an NSMutableString to begin with.