30得票3回答
在Objective-C中合并NSArrays

我有一个NSDictionary,其中每个键都指向一个数组。 我希望后来将所有值合并为一个数组。 是否有一种方法可以使用API来执行比以下代码更高效的操作:NSArray *anArray = [someDictionary allValues]; NSMutableArray *newArr...

30得票1回答
NSSet的containsObject:方法是测试指针相等还是值相等?

假设我有一个包含字符串的 NSSet,如果我使用另一个字符串发送 containsObject: ,这个字符串指针与原字符串相比不同但值相同,那么它会返回 YES 吗? 同样的,当涉及到 removeObject: 时,情况是否相同?也就是说,不同的对象具有不同的指针但具有相同的字符串值将导...

23得票2回答
iOS 15警告:NSKeyedUnarchiver _warnAboutPlistType:missingInAllowedClasses:

Xcode 13和iOS 15开始在使用自定义DataTransformers时警告缺少的allowedClasses。关于自定义DataTransformers的文档非常少,因此我想在这里发布一个问题并回答它。[general] *** -[NSKeyedUnarchiver _warnAb...

23得票3回答
如何解决在 iOS 13.0 中 'scanLocation' 已弃用的问题。

当我尝试使用Scanner时,出现了“scanLocation”在iOS 13.0中已经被弃用的警告。因为能够从下一个位置扫描字符串对于扫描而言相当基础,所以想知道应该使用什么来代替scanLocation。苹果的Scanner文档甚至不提到这个弃用,更不用说建议使用什么来代替scanLoca...

22得票2回答
保持NSThread的活动状态并在其上运行NSRunLoop

我正在启动一个新的NSThread,希望以后可以通过调用performSelector:onThread:...来使用它。根据我的理解,调用该方法会将该调用添加到该线程上的runloop中,因此在下一次迭代时,它将弹出所有这些调用并依次调用它们,直到没有可以调用的内容为止。因此,我需要这种功能...

22得票1回答
为什么 String.subscript(_:) 要求 `String.Index` 和 `Int` 类型相等,即使没有涉及到 `Int`?

我不明白Xcode在这一行遇到的问题:iteration.template = template[iterationSubstring.endIndex...substring.startIndex] template是一个String,而iterationSubstring和substrin...

21得票2回答
关于-(NSDictionary)dictionaryWithObjectsAndKeys:和

我有一个非常有意思的问题。 在我的一个类中,我声明了一个非常简单的实例方法-(NSDictionary)dictionary; 它的实现方式如下:- (NSDictionary *)dictionary { return [NSDictionary dictionaryWithObj...

21得票1回答
如何在Xcode 9中检查API的可用性

我正在使用仅在iOS 10中可用的用户通知框架UserNotification。我正在声明一个使用此框架的方法,到目前为止,我一直在检查其是否可用,如下所示:@interface MyService : NSObject #if __IPHONE_OS_VERSION_MAX_ALLOWED...

20得票2回答
NSMutableArray背后的数据结构是什么?

通常,“可变数组”类被实现为简单数组的包装器。当您添加一个元素到末尾时,包装器会分配更多的内存。这是一种常见的数据结构,各种操作的性能也很好。您可以得到 O(1) 的元素访问、O(N) 的插入和删除,或者 O(1)(平均值)的在数组末尾插入和删除。但是NSMutableArray则不同。例如,...

20得票5回答
为什么在 Objective-C 中像 NSArray、NSDictionary 等类有可变和不可变版本?其背后的逻辑是什么?

为什么Objective C中常用的集合类,如NSString、NSArray和NSDictionary等,都有可变版本和不可变版本?定义它们分别有哪些逻辑?是性能、内存管理还是其他原因?