gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Embedded blocks...


From: 陈北宗
Subject: Re: Embedded blocks...
Date: Sun, 27 Oct 2019 00:35:57 +0800

So you need a pointer to the inner block… I did not find any way of doing this using public API. You might have to dig into private API’s in libBlocksRuntime.

On Oct 27, 2019, at 00:28, Gregory Casamento <address@hidden> wrote:

I know how to handle it in the normal case.   The issue is how to pull it out of the gnustep specific strict to use it.  

On Sat, Oct 26, 2019, 11:28 AM 陈北宗 <address@hidden> wrote:
What do you want to access it for? Invoking it? Copying it?

If it is latter, just copying or retaining the outer block is adequate, as copying the outer block will cause the inner block be retained, which would copy it if it is a stack block.

On Oct 26, 2019, at 22:42, Gregory Casamento <address@hidden> wrote:

Hey Guys,

I am implementing the following class:


DEFINE_BLOCK_TYPE(NSBackgroundActivityCompletionHandler, void, NSBackgroundActivityResult);
DEFINE_BLOCK_TYPE(GSScheduledBlock, void, NSBackgroundActivityCompletionHandler);  

@interface NSBackgroundActivityScheduler : NSObject
{
  NSString *_identifier;
  NSQualityOfService _qualityOfService;
  NSTimeInterval _interval;
  NSTimeInterval _tolerance;
  BOOL _repeats;
  BOOL _shouldDefer;
}
 
- (instancetype) initWithIdentifier: (NSString *)identifier;

- (NSString *) identifier;
- (void) setIdentifier: (NSString *)identifier;

- (NSQualityOfService) qualityOfService;
- (void) setQualityOfService: (NSQualityOfService)qualityOfService;

- (BOOL) repeats;
- (void) setRepeats: (BOOL)flag;

- (NSTimeInterval) interval;
- (void) setInterval: (NSTimeInterval)interval;

- (NSTimeInterval) tolerance;
- (void) setTolerance: (NSTimeInterval)interval;

- (BOOL) shouldDefer;
- (void) setShouldDefer: (BOOL)flag;

- (void) scheduleWithBlock: (GSScheduledBlock)block;

- (void) invalidate;
 
@end

How do I handle the embedded block GSScheduledBlock??  Declaring it this way compiles, but I have no idea how to access the handler which is passed in.

Any clues?  

Thanks, GC

--
Gregory Casamento
GNUstep Lead Developer / OLC, Principal Consultant
http://www.gnustep.org - http://heronsperch.blogspot.com
http://ind.ie/phoenix/



Mailtrack Sender notified by
Mailtrack 10/26/19, 10:39:17 AM


Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]