125得票2回答
NSObject +load和+initialize - 它们是做什么的?

我希望了解开发人员为何要覆盖+initialize或+load。文档清楚地说明这些方法是由Objective-C运行时为您调用的,但是从这些方法的文档中只有这么多内容是清晰的。:-) 我的好奇心来自于查看苹果的示例代码-MVCNetworking。他们的模型类有一个+(void)applic...

59得票4回答
如何将NSRange存储在NSMutableArray或其他容器中?

我想做的是:NSRange r = NSMakeRange(0,5); id a = [NSMutableArray a]; [a addObject: r]; // but NSRange is not a NSObject * 如果是布尔值,我会使用以下代码:[a addObject: [...

59得票4回答
Swift中的NSObject子类:hash vs hashValue,isEqual vs ==

在Swift中子类化NSObject时,应该重写hash还是实现Hashable?另外,应该重写isEqual:还是实现==运算符?

41得票3回答
在Swift中继承NSObject的最佳实践 - 构造函数

这是一个示例类的布局,请问有人可以指导我在创建NSObject的子类时最佳实践是什么吗?class MyClass: NSObject { var someProperty: NSString! = nil override init() { self.so...

35得票3回答
什么是__NSArrayI和__NSArrayM?如何将其转换为NSArray?

什么是__NSArrayI和__NSArrayM? __NSArrayI(或M)会引起“unrecognized selector”错误。 如何转换为NSArray? 我进行了解析json、Twitter API的测试。 http://api.twitter.com/1/follo...

33得票2回答
NSObject的描述和调试描述

我看到过在调试目的下提到了 description 和 debugDescription,但还没有看到关于何时使用哪个以及它们在什么情况下可能会产生不同结果的精确解释。 NSObject 的文档中也没有关于 debugDescription 的内容。问题是:在什么情况下使用哪个,并且在什么条...

32得票3回答
什么是NSObject的isEqual:和hash默认函数?

我有一个数据库模型类,它是一个NSObject。我有一组这些对象在NSMutableArray中。我使用indexOfObject:来查找匹配项。问题是模型对象的内存地址会发生变化。因此,我覆盖hash方法返回模型的行ID。但这并不能解决问题。我还要覆盖isEqual:方法来比较hash方法的...

30得票3回答
Objective-C:为什么在调用 respondsToSelector 之前要检查 nil?

我看到了类似以下的代码:if (delegate != nil && [delegate respondsToSelector:@selector(doSomething)]) ... 但是,向 nil 发送消息只会返回nil(等同于NO),那么为什么不直接这样做:if ([d...

30得票2回答
自定义类继承了NSCoding和NSObject,但Equatable类型的重写函数没有被调用

下面的FooBar类必须覆盖Equatable类型的==函数。 但是,在一个FooBar对象数组上调用contains不会导致自定义的==函数内部的断点被调用。还可能有另一个==函数覆盖了此自定义函数吗? 注意:由于FooBar必须从NSCoding和NSObject子类化,所以FooBa...

25得票4回答
从自定义对象数组中删除重复项 Swift

我有一个自定义类的定义如下:class DisplayMessage : NSObject { var id : String? var partner_image : UIImage? var partner_name : String? var last_message : String?...