Objective-C/Nil-ზე მეთოდების გამოძახება

ვიკიწიგნებიდან
Jump to navigation Jump to search

Objective-C-ში, nil ობიექტი არის ფუნქციონალურად ექვივალენტური NULL მიმართვისა სხვა მრავალ ენაში. განსხვავება ისაა, რომ თქვენ შეგიძლიათ მეთოდების გამოძახება nil-ზე პროგრამის გაწყვეტის ან შეცდომის ამოგდების გარეშე.

ეს ხშირად გამოიყენება სხვადასხვა გზით. თუმცა საწყის ეტაპზე ეს იმას ნოშნავს თქვენთვის, რომ ჩვეულებრივად არ გჭირდებათ იმის შემოწმება არის თუ არა მოცემული ობიექტი nil თუ არა. თუ თქვენ გამოიძახებთ nil-ზე მეთოდს, რომელიც აბრუნებს მნიშვნელობას, მაშინ შედეგად ისევ nil-ს მიიღებთ.

ასე ჩვენ შეგვიძლია ჩვენი dealloc მეთოდის გაუმჯობესება:

- (void) dealloc
{
    self.caption = nil;
    self.photographer = nil;
    [super dealloc];
}

ეს იმიტომ მუშაობს რომ ჩვენ ვაყენებთ nil-ს როგორც ეგზემპლარის ცვლადს, მნიშვნელობის მიმღები უბრალოდ ინარჩუნებს nil-ს (რაც არაფერს არ ნიშნავს) და ათავისუფლებს ძველ ობიექტს. ეს ხშირად უკეთესი მიდგომაა dealloc-ში გამოსაყენებლად ი.რ. ასე ნაკლები შანსია შეგვეშალოს შესაბამისი ობიექტის დელოკაცია.