I’m getting what XCode labels an ARC Issue that I have a rather hard time to parse. I have this class:
typedef void (^sig_cb_t)(NSString *parm);
@protocol Signaleer
// <snip>
-(void) connect:(NSString *) verb
parm:(NSString*) param
callback:(sig_cb_t)callback;
@end
// In another header:
@interface Switchboard : NSObject <Signaleer> {
@private
NSMutableDictionary *bus;
}
// In init: method:
bus = [[NSMutableDictionary alloc] init];
// actual implementation:
-(void) connect: (NSString *)verb
parm:(NSString*)parm
callback:(sig_cb_t)callback {
NSMutableArray *callbacks = [self.bus objectForKey:verb];
NSArray *signal = [NSArray arrayWithObjects:callback, parm, nil];
if (callbacks == nil) {
NSArray *initial = [NSArray arrayWithObjects:signal, verb, nil];
[bus setObject: initial, forKey:verb];
} else {
[callbacks addObject:signal];
}
}
The line [bus setObject: initial, verb] results in the error No visible @interface for 'NSMutableDictionary' declares the selector 'setObject:'. Anyone who can explain this?
I assume you are referring here to the line:
(you write
[bus setObject: initial, verb]in the last line of your question which I assume is a mistake)Both lines have a comma in there, which shouldn’t be there.