• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: What difference exist from where a method will be called?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What difference exist from where a method will be called?


  • Subject: Re: What difference exist from where a method will be called?
  • From: Raimond Hettrich <email@hidden>
  • Date: Thu, 08 Sep 2016 15:13:13 +0200

Hallo Graham,

the init-method of the DelegateClass is running. This is because I have a class object in the Document.xib file. But nevertheless I changed the init-method into initWithFrame with the same result. Then I changed it into initWithCoder and the result is not an array with (null) but an array without content.

My DocumentProtocol is only to send the array created in the document class to the DelegateClass. That’s all. And this part of code works fine. The DelegateClass gets the array created in the document class and if I press the button the button-action calls the showArray-method and the array will be printed out correctly. But only if I call the showArray method from within the drawRect-method, it will be printed out (null) or empty.

Yes I just need one array, but I have to work with the arrays values in another class. Because I don’t wanna create a global variable I send the array via a protocol.

There’s surely another way to work with the document array in the DelegateClass but I really want to understand, how it can be that an array has contend if the method which only prints the array out is called from a button-action and is (null) or empty if it’s called from drawRect.

I’m a very newbie and I think that it is important for every other app to understand this.

Many Thanks,
Raimond


> Am 08.09.2016 um 14:35 schrieb Graham Cox <email@hidden>:
>
>
>> On 8 Sep 2016, at 9:27 PM, Raimond Hettrich <email@hidden> wrote:
>>
>> @interface DelegateClass : NSView <DocumentProtocol> {
>>   NSMutableArray *delegateArray;
>>
>>
>>   __weak IBOutlet Document *documentOutlet;
>> }
>>
>> @end
>>
>>
>> //
>> //  DelegateClass.m
>> //  Test
>> //
>>
>> #import "DelegateClass.h"
>>
>> @implementation DelegateClass
>>
>> - (void)drawRect:(NSRect)dirtyRect {
>>   [super drawRect:dirtyRect];
>>
>>
>>   [self showArray];
>> }
>>
>> - (id)init {
>>   self = [super init];
>>   if (self) {
>>       delegateArray = [[NSMutableArray alloc]init];
>>   }
>>   return self;
>> }
>>
>
>
> The -init method of DelegateClass will never run. It’s not the designated initializer for a NSView (-initWithFrame: is, but it could also be -initWithCoder: depending on the setting in the nib), so your array will never be created. That’s probably why it’s nil in -drawRect.
>
> I don’t really understand what your ‘document protocol’ is doing, but I also notice that you craete a different array in the Document class. Wouldn’t you just want an array in one place, not two different ones?
>
> —Graham
>
>


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: What difference exist from where a method will be called?
      • From: Graham Cox <email@hidden>
References: 
 >What difference exist from where a method will be called? (From: Raimond Hettrich <email@hidden>)
 >Re: What difference exist from where a method will be called? (From: Jens Alfke <email@hidden>)
 >Re: What difference exist from where a method will be called? (From: Raimond Hettrich <email@hidden>)
 >Re: What difference exist from where a method will be called? (From: Graham Cox <email@hidden>)

  • Prev by Date: Re: What difference exist from where a method will be called?
  • Next by Date: Re: What difference exist from where a method will be called?
  • Previous by thread: Re: What difference exist from where a method will be called?
  • Next by thread: Re: What difference exist from where a method will be called?
  • Index(es):
    • Date
    • Thread