2017-12-31 164 views
0

를 작동하지 내 코드입니다 : 내가있는 NSArray에서 개체를 제거하는 것을 시도하고있다제거 항목 후킹 스위프트 여기

-(NSArray*)buttons { 
    NSArray *buttons = %orig; 
    NSMutableArray *mutableItems = [NSMutableArray arrayWithArray:buttons]; 
    [mutableItems objectAtIndex:2]; 
    return mutableItems; 
} 

하지만있는 NSArray는 스위프트 클래스입니다. 그 Swift 클래스에서 다른 것을 얻는 데 문제가 없지만 NSArray에서 어떤 객체도 제거 할 수 없습니다. 나는 어떤 실수도하지 않지만, 내가 한 변화는 아무런 효과가 없다. 이것은 감옥 비틀기를위한 것입니다.

+0

디버거를 사용하여 문제를 격리 했습니까? –

답변

2

[mutableItems objectAtIndex:2][mutableItems removeObjectAtIndex:2]으로 바꿉니다.

풀 예 :

-(NSArray*)buttons { 
    NSArray* buttons = @[@"a", @"b", @"c", @"d"]; 
    NSMutableArray *mutableItems = [NSMutableArray arrayWithArray:buttons]; 
    [mutableItems removeObjectAtIndex:2]; 
    return mutableItems; 
} 

mutableItems 배열 A, B, D를 포함 할 것이다.

+0

이것은 여전히 ​​작동하지 않습니다. 왜 NSArray에 NSArray에 a, b, c 및 d를 추가해야하는지 이해하지 못합니다. – Squ1dd13Dev

+0

@ Squ1dd13Dev 이것은 단지 예제 일 뿐이므로'% 오리가있다. 배열에서 인덱스 2에있는 객체를 제거하는 방법을 보여줍니다. 귀하의 초기 질문 NSArray 개체 양식을 제거하는 방법을 줄 알았는데. – florieger

+0

확인. % orig에 0-19 개 항목이 있습니다. – Squ1dd13Dev