associated object macro can now take strong and weak as storage specifiers in addition to retain and assign