【问题标题】:Removing items from NSMutableArray when hooking Swift not working挂钩 Swift 时从 NSMutableArray 中删除项目不起作用
【发布时间】:2017-12-31 10:57:48
【问题描述】:

这是我的代码:

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

我正在尝试从 NSArray 中删除一个对象,但该 NSArray 在 Swift 类中。我可以毫无困难地更改该 Swift 类中的其他任何内容,但我无法从 NSArray 中删除任何对象。我没有收到任何错误,但我所做的更改根本没有任何效果。这是为了越狱调整。

【问题讨论】:

  • 您是否使用调试器来隔离问题?

标签: objective-c nsmutablearray nsarray


【解决方案1】:

[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。

【讨论】:

  • 这仍然不起作用,我不明白如果我没有做到,为什么我需要将 a、b、c 和 d 添加到 NSArray
  • @Squ1dd13Dev 这只是一个例子,因为我不知道%orig 是什么。它说明了如何从数组中删除索引 2 处的对象。我以为您最初的问题是如何从 NSArray 中删除对象。
  • 您的答案由于某种原因仍然无效。
  • @Squ1dd13Dev 编辑问题以发布您现在拥有的完整代码。 IE。您如何创建 %orig 等。
  • Dude,如果 %orig 有“0-19 个项目”,那么你不能只删除索引 2 处的项目。当 %orig 只有 0、1 或 2 个项目时,这将导致崩溃.此外,此处显示的代码是正确的......如果您遇到问题,您应该分享更多代码。
猜你喜欢
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多