Skip to content

_SwiftValue appears in objective-c projects  #1147

Closed
@webMing

Description

@webMing

Return _SwiftValue Type In OC

My project language is OC, when I implement this method as bellow, I find ret is a _SwiftValue type and can`t use isEqualToString method. My doubt is that this lib support OC, but why i get a _SwiftValue type value in callback block? Please provide some ideas or reference links.

[socket on:@"statusChange" callback:^(NSArray * _Nonnull arr, SocketAckEmitter * _Nonnull ack) {
    id ret  = [arr firstObject];// when i make a break here,I find ret is _SwiftValue. and it`s _SwfitValue type
    if ([ret isEqualToString:@"connecting"]) {
            //do something usefull;
        }
}];

Connecting,connect ....and other connect event not trigger

[socket on:@"connecting" callback:^(NSArray * _Nonnull arr, SocketAckEmitter * _Nonnull ack) {
        //do something.....
 }];
[socket on:@"connect" callback:^(NSArray * _Nonnull arr, SocketAckEmitter * _Nonnull ack) {
        //do something.....
 }];

I find that connecting, connected... and other connect status event not trigger, but statusChange event is trriger. this doubt me. and this is my code as bellow

- (void)config {

   NSURL* url = [[NSURL alloc] initWithString:SOCKETIOADDR];
    NSDictionary *config = @{@"log":@YES};
    SocketManager* manager = [[SocketManager alloc] initWithSocketURL:url config:config];
    SocketIOClient* socket = manager.defaultSocket;
    _manager = manager;
    _socket = socket;

    /*event type(may error)
     case .connected:    return "connected"
     case .connecting:   return "connecting"
     case .disconnected: return "disconnected"
     case .notConnected: return "notConnected"
     */
    [socket on:@"connecting" callback:^(NSArray * _Nonnull arr, SocketAckEmitter * _Nonnull ack) {
        // when socket is connecting this method not call. the same as connected, disconnected event
    }];
    
    [socket on:@"statusChange" callback:^(NSArray * _Nonnull arr, SocketAckEmitter * _Nonnull ack) {      //when connect status is change, this method called.
        id  swiftValue  = [arr firstObject];
        NSString *statusStr  = swiftValue;
        if ([statusStr isEqualToString:@"connecting"]) {
           
        }
        NSLog(@"---------------------- socket  connect statusChange :%@",[arr firstObject]);
    }];
    
}

- (void)open {
      [_socket connect];
}

- (void)close {
    [_socket disconnect];
    [_manager disconnect];
}

I Integrate this lib use Pod. Thank you in advance..

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions