12得票2回答
在我的对象类中使用typedef枚举

我有一个People类,保存关于一个人的各种信息。我想要能够识别这个人是哪种类型的,所以我想尝试使用typedef枚举来完成这个任务,因为我之前见过它被使用,并且它似乎是最清晰的解决方案。但是,我不确定如何声明它,然后将其变成属性。 .htypedef enum { kPersonT...

12得票2回答
故事板中的“对象库”中的“对象”有什么作用?

简短问题 XCode的Interface Builder中有一个称为Object的东西。我想知道使用这个"Object"可以实现什么样的任务。 具体来说,在Storyboard(或xib)中,它是一个NSObject。如下所述: 提供模板,用于不直接在Interface Build...

11得票3回答
Swift 2.0中的等于操作符和NSObjects存在Bug吗?

好的,在Swift 2.0中为NSObject子类编写自己的等于运算符时,会发生一些奇怪的事情: func ==(lhs: MyObject, rhs: MyObject) -> Bool { return lhs.identifier == rhs.identifier } ...

11得票3回答
在Objective-C中创建具有init方法的单例的安全方式

我想将使用共享实例的GCD方法推向下一步,因此我创建了以下代码:@implementation MyClass static id sharedInstance; #pragma mark Initialization + (instancetype)sharedInstance { ...

11得票2回答
performSelector:withObject:及其保留行为

这是一个已经在SO上回答的问题,但是我无法在Apple的文档中找到它。你能指点我吗? 以下是相关主题: 在-performSelector:withObject:afterDelay:方法中,我是否需要对一个对象进行retain操作? performSelector:withObject...

11得票4回答
为什么在方法签名中使用(id),而(NSObject *)更加精确?

每当我在自己的代码中实现一个能够接受或返回多个类对象的方法时,我总是尽量使用最特定的超类。例如,如果我要实现一个可能根据输入返回NSArray *或NSDictionary *的方法,我会将该方法的返回类型设置为NSObject *,因为这是最直接的共同超类。以下是一个示例:@interfac...

11得票2回答
Objective-C中如何用setValue:forKey设置C原始类型的值

我正在使用大牛书院的书学习Objective-C,这是一本非常好的书,但有些方面让我感到困惑。 当前章节讲解了使用setValue:forKey函数,我知道它是NSObject中定义的一个方法。书上说你可以在像int或float这样的c原语上使用它,并给出了以下示例: 我有一个名为Appl...

11得票4回答
iOS > "id" 与 NSObject的区别

以 id 类型对一个 Object 进行 'Polymorphic' 方式访问,与使用 NSObject * 有什么不同? 它们有何不同之处: NSString* aString = @"Hello"; id anObj = aString; 不同于: NSString* aStri...

11得票3回答
NSObject符合类中的-self方法的目的是什么?

就是这样。为什么会有人想要(至少作为公共API)这样的方法呢?有没有任何实际用途呢?

10得票4回答
任何对象如何符合NSObjectProtocol?

这个问题的灵感来自于mz2在问题Check for object type fails with "is not a type" error上的回答。 考虑一个空的Swift类:class MyClass { } 尝试在此类的实例上调用任何NSObjectProtocol...