During development, we often need to save some configuration information. Generally, NSUserDefaults [plain] [[NSUserDefaults standardUserDefaults] objectForKey: key]; [[NSUserDefaults standardUserDefaults] setObject: aObject forKey: key]; [[NSUserDefaults standardUserDefaults] removeObjectForKey: key]; I have encapsulated these to make it easier to use: [plain] // In. in the H file, declare the variable XY_DataLite_string (DataLiteTitle) // In. in the m file, the DEF_DataLite_object_autoSynchronize (DataLiteTitle) variable is used as follows: [plain] self. dataLiteTitle = nil; NSLogD (@ "% @", self. dataLiteTitle); self. dataLiteTitle = @ "test1"; NSLogD (@ "% @", self. dataLiteTitle); Parameters [plain] # define XY_DataLite_string (_ name) \-(void) set #__name :( NSString *) aObject; \-(id) _ name; // note: the first letter of _ name must be capitalized # define DEF_DataLite_object_autoSynchronize (_ name) \-(void) set #__name :( id) aObject {\ [datemediwriteobject: aObject forKey: NSStringify (_ name) synchronize: YES]; \} \-(id) _ name {\ return [datatereadobjectforkey: NSStringify (_ name)]; \}