나는 .H 파일의 코드가 있습니다스위프트 배열은 목표 - C에서
typedef void(^SocketConnectionLost)();
typedef void(^SocketIOCallback)(id argsData);
@interface SocketConnection
@property (strong, nonatomic) SocketIO *socketIO;
@property (strong, nonatomic) NSMutableArray *socketConnectionLosts;
-(void)sendEventWithName:(NSString*)eventName
withData:(id)data
onConnectionLost:(SocketConnectionLost)connectionLost
onAnswer:(SocketIOCallback)answer;
@end
을 그리고 내가하는 .m 파일의 코드가 있습니다
@implementation SocketConnection
- (void)init {
self.socketIO = [[SocketIO alloc] initWithDelegate:self];
[self.socketIO setReturnAllDataFromAck: YES];
[self.socketIO connectToHost:kSocketHost onPort:kSocketPort withParams:params];
}
- (void) socketIODidDisconnect:(SocketIO *)socket
disconnectedWithError:(NSError *)error {
for(ServerRequestConnectionLost connectionLost in self.socketConnectionLosts)
if(connectionLost)
connectionLost();
[self.socketConnectionLosts removeAllObjects];
}
-(void)sendEventWithName:(NSString*)eventName
withData:(id)data
onConnectionLost:(SocketConnectionLost)connectionLost
onAnswer:(SocketIOCallback)answer {
[self.socketConnectionLosts addObject:connectionLost];
[self.socketIO sendEvent:eventName withData:data andAcknowledge:^(id argsData) {
if(connectionLost)
[self.socketConnectionLosts removeObject:connectionLost];
if(answer)
answer(argsData);
}];
}
@end
날이 재현 도와주세요 Swift에서 코드를 작성, 추가 및 제거하는 방법을 모르겠다.
Swift에서 일부 블록을 만드는 방법은 다음과 같습니다.
형 '() ->()가'프로토콜에 확인하지 않습니다 'AnyObject'가 그럼 난 [self.socketConnectionLosts removeObject처럼 배열에서 someBlock를 제거해야합니다 :
var someBlock:()->()
var connectionLosts = NSMutableArray()
connectionLosts.append(someBlock)
컴파일러는 나에게 오류를 보여줍니다 connectionLost] obj-c와 나는 스위프트 배열로 그것을하는 방법을 이해하지 않는다.
감사 :
은 적절한 방법을 사용하여 요소를 제거하려면! 그리고 array :: array.filter ({$ 0! = someClosure})에서 어떻게 제거 할 수 있는지 알려주세요.하지만 컴파일러는 다음과 같이 입력하십시오 : 'ClosureType'이 'Equatable'프로토콜을 따르지 않음 –
업데이트 된 답변보기 – Antonio
감사합니다. 당신의 포괄적 인 대답을위한 당신 !!!! ^^ –