In this case you already have one cast, but I think it's casting to the wrong class. If bookmarkDict is full of strings, then your loop should be:
Code:
for (NSString *entry in bookmarkDict)
Casting is the way to go in situations like this, when dealing with arrays and dictionaries. The compiler has no idea what type of object is in an array or dictionary, so you need to help it out.
There are other situations where casting would be wrong. I can create and NSString and cast it as a UIView, but that won't make it respond to the right messages for a UIView. It doesn't actually do any "conversion" on the object.