Вы должны сказать больше о том, почему вы заботитесь о размере словаря в байтах, потому что ответ может быть разным в зависимости.
В общем, "размер" занимаемой памяти NSDictionary не является чем-тоВы можете видеть или заботиться о.Он абстрагирует свой механизм хранения от программиста и использует некоторую форму служебных данных помимо фактических данных, которые он хранит.
Однако вы можете сериализовать словарь в NSData.Если содержимое словаря имеет только «примитивные» типы, такие как NSNumber, NSString, NSArray, NSData, NSDictionary, вы можете использовать класс NSPropertyListSerialization, чтобы превратить его в список двоичных свойств, который будет представлять собой наиболее компактное байтовое представление его содержимого.что вы можете получить:
NSDictionary * myDictionary = /* ... */;
NSData * data = [NSPropertyListSerialization dataFromPropertyList:myDictionary
format:NSPropertyListBinaryFormat_v1_0 errorDescription:NULL];
NSLog(@"size: %d", [data length]);
Если он содержит другие пользовательские объекты, вы можете использовать NSKeyedArchiver для архивирования их в NSData, но это будет значительно больше и требует взаимодействия ваших пользовательских классов.