userDefaults v nodeData?

Playing around with userDefaults and nodeData (SpriteKit) I found them to be the same, except that nodeData seems to be scoped to the method that it is in, while userDefaults is globally available to the entire class?

Anybody know anything concrete about a comparison between the two please?