2016-06-30 6 views
2

クラスオブジェクトのサイズを取得する必要があります。例えば、実行時に対象オブジェクトのサイズを取得する

Class ABC 
{ 
    NSData *data; 
    UIimage *img; 
    NSString *str; 
} 

実行時には、たとえば、.dataおよび.imgプロパティに値を割り当てます。

ABC *objABC = [ABC allc] init]; 
objABC.data = Mydata; 
objABC.img = Myimage; 
objABC.str = @"testString"; 

ここで、サイズを「objABC」のバイトまたはKBまたはMBで知る必要があります。

異なるサイズの.imageと.dataプロパティを持つクラスABCのオブジェクトを100個作成したとします。私はmalloc_size()で試しましたが、size .dataまたは.imgに関係なく、すべてのオブジェクトに対して同じサイズが返されます。

objABCの正確なサイズをKBで知りたいと思います。助けてください。

+0

あなたがそのメソッド内で、適切なロジックを記述し、その後、そのコンテンツのサイズを返すABCの内部メソッドを記述する必要があります。 – LordWilmore

+0

そのオブジェクト内でdoubleを返すメソッドを作成します。内部でそれをnsdataに変換し、nsdataから長さを取得し、長さを返します。 –

答えて

0

次を使用することができます。

#include <objc/runtime.h> 

size_t objsize = class_getInstanceSize([objABC class]); 
+0

これは、これらのインスタンス変数が指すオブジェクトのサイズではなく、すべてのインスタンス変数のサイズのみを取得します。 – Avi

関連する問題