الكاكاو اللمس. ما هو بالضبط الفرق بين هذه الطرق NSMutableData؟
-
05-07-2019 - |
سؤال
وشيء واحد أنا قليلا واضح على الفرق بين هذه الطرق NSMutableArray:
// Class Method Style
NSMutableData *myMutableDataInstance = [NSMutableData dataWithLength:WholeLottaData];
و
// Instance Method Style
NSMutableData *myMutableDataInstance = nil;
myMutableDataInstance = [[[NSMutableData alloc] initWithLength:WholeLottaData]] autorelease];
وتحت غطاء محرك السيارة، ما eactly هو أسلوب فئة تفعل هنا؟ كيف تختلف من أسلوب مثيل؟
وابتهاج، دوغ
المحلول
ووأسلوب فئة يخلق وautoreleases كائن NSMutableArray.
وأسلوب المثال initialzes كائن أن لديك لتخصيص بنفسك. سوف رمز كنت قد كتبت في الواقع لا تفعل أي شيء، لأن myMutableArrayInstance
هو nil
. وأسلوب فئة ما يعادل تقريبا لهذه:
NSMutableArray *myMutableArrayInstance = [NSMutableArray alloc];
[myMutableArrayInstance initWithCapacity:WholeLottaData];
[myMutableArrayInstance autorelease];
وكما يلاحظ بيتر Hosey في تصريحات، فهذا يعني حقا هذا:
NSMutableArray *myMutableArrayInstance = [[[NSMutableArray alloc]
initWithCapacity:WholeLottaData]
autorelease];
والتي سيكون لها نتائج مختلفة عن ما سبق إذا كانت طريقة initWithCapacity:
بإرجاع كائن آخر.
لا تنتمي إلى StackOverflow