- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用模板项目来尝试构建新应用程序。当我运行模板项目时,出现错误:“[T] 没有名为“indexOf”的成员。
Array+RemoveObject.swift 文档中的现有代码是:
import Foundation
public func removeObject<T: Equatable>(object: T, inout fromArray array: [T])
{ let index = array.indexOf(object)
if let index = index {
array.removeAtIndex(index)
}
}
问题出在indexOf的使用上吗?奇怪的是,当我尝试使用回答类似问题的人的解决方案时,我从 bond 框架中得到了大约 100 个错误。
最佳答案
你自己的功能对我来说很好(Swift 2.1.1,Xcode 7.2)。似乎您希望此函数成为您的公共(public)类的方法。对于最小的工作示例,您至少需要将 removeObject()
方法包装在您希望它所属的类中。另请注意,您不需要使用单独的行来分配 .indexOf(..)
调用的结果(可能是 nil
),但可以添加分配和 nil
检查单个 if let 语句。
public class MyArrayOperations {
// ...
static public func removeObject<T: Equatable>(object: T, inout fromArray array: [T]) {
if let index = array.indexOf(object) {
array.removeAtIndex(index)
}
}
}
var arr = ["1", "2","3"]
MyArrayOperations.removeObject("2", fromArray: &arr)
print(arr) // ["1", "3"]
另请注意,如果您希望数组本身符合某些协议(protocol),您可以使用两个泛型显式声明相同的行为。然后,您对数组类型使用一个单独的泛型,对其元素使用一个泛型,此后指定元素类型应符合数组的 Generator.Element
类型。例如:
func removeObject<T: Equatable, U: _ArrayType where U.Generator.Element == T>(object: T, inout fromArray array: U) {
if let index = array.indexOf(object) {
array.removeAtIndex(index)
}
}
使用这种方法,您可以在上面的函数签名中为泛型数组 U
添加类型约束的附加协议(protocol),例如
func removeObject<T: Equatable, U: protocol<_ArrayType, MyProtocol> where U.Generator.Element == T>(object: T, inout fromArray array: [T]) { ...
这在“模拟”符合某些协议(protocol)的通用 Array
扩展时特别有用。参见例如下面是这样一个例子:
关于ios - 我的 Array+RemoveObject.Swift 应该包含什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34583487/
我的项目创建了一个炸弹,一个爆炸,然后检查爆炸中的碰撞,最后删除没有在碰撞中被击中的炸弹。对此有更详细的解释here .以下代码执行此操作。 -(void)placeBomb { NSLog(
不好意思我是iOS开发的新手,今天遇到了一个奇怪的问题:当我从自定义对象中删除对象时,它总是返回崩溃: 原因:'-[__NSArrayI removeLastObject]:发送到实例的无法识别的选择
我正在尝试使用 NSMutableSet 创建一组对象。对象是一首歌曲,每个标签都有一个名字和一个作者。 代码: #import "Song.h" @implementation Song @synt
当我从 CoreData 实体生成我的类时,我得到生成的方法 @interface Site (CoreDataGeneratedAccessors) - (void)addSearchesObjec
我假设 NSArrayController 的 addObject 和 removeObject 的工作方式与 NSMutableArray 中的类似物类似。 但是,看起来 addObject 将其目
我有一个类,我用它来传递带有文本标签的选择器: @interface TableLink : NSObject @property (nonatomic, strong) NSString* name
我想知道当您在数组中使用 removeObject 删除对象时是否正确处理了删除的对象。被移除的对象会被释放吗? 最佳答案 NSMutableArray 会释放它。如果这是最后一次保留,它将被释放。来
解释 我有一个非常简单的卡路里跟踪应用程序,它使用 Nutritionix API 根据用户的输入搜索食物。结果被添加到 results数组,然后显示给用户。当用户单击这些项目之一旁边的“添加”按钮时
我正在使用模板项目来尝试构建新应用程序。当我运行模板项目时,出现错误:“[T] 没有名为“indexOf”的成员。 Array+RemoveObject.swift 文档中的现有代码是: import
这个问题在这里已经有了答案: Collection was mutated while being enumerated error in objective C (6 个答案) 关闭 9 年前。
我要开始另一个项目,我正在创建函数来添加、更新和删除对象。 在命名更新和删除函数时,我倾向于怀疑自己,因为有时我将它们命名为: updateObject and removeObject 但是当我对不
首先,我是 Objective C 的新手。 我的类 Song 有一对属性。在我的主类中,我得到了一个变量 allSongs,它是一个 NSMutableArray,在这个数组中我添加了我所有的歌曲对
我正在尝试遍历 Ember 中的数组并使用 removeObject() 从数组中删除对象。下面的示例仅从数组中删除了一些对象。我希望它遍历所有对象然后删除它们: App = Ember.Applic
关于 NSMutableArray,removeObject: 和 removeObjectIdenticalTo: 之间有什么区别? API Reference中的措辞看起来很相似: rO: Rem
我将大约 1000 个 MKPolygon 添加到 MKMapView 上。将叠加层添加到 MKMapView 后,它工作正常。但是,如果我快速放大和缩小(偶尔放开缩放,以便 mapView 处理它是
示例:我将一些 NSString 对象添加到 NSMutableArray:@"Foo"、@"Bar"、@“FooBar"。现在,我在其他地方再次访问该数组,并且想要删除 @"Foo"。因此,我创建了
我正在使用 here.com javascript api v3。我正在使用以下行来重置 map (通过删除其中的所有对象): map.removeObjects(map.getObjects());
我是一名优秀的程序员,十分优秀!