11得票1回答
在Swift中捕获NSJSONSerialization错误

我正在努力理解为什么我无法捕获NSJSONSerialization抛出的错误。 我期望捕获NSInvalidArgumentException异常,但是应用程序却崩溃了。 这在使用Xcode 8的Swift 3和Swift 2.3中都发生了。 Swift 3: do { ...

10得票1回答
Swift 2: NSData(contentsOfURL:url) 返回nil

我有一个包含JSON文件的网页地址,我想在Swift 2中将其作为NSDictionary访问。每次我调用 NSData(contentsOfURL:url!),其中url是NSURL?类型时,它都会返回 nil。我正在使用Xcode 7 Beta,并且该项目最初是在Xcode 6中创建的。 ...

10得票2回答
从库调用类别方法时出现“向类发送未识别的选择器”的错误

问题 这个问题可能看起来有点长,但我会尽可能提供更多信息,因为我真的很困惑。 我目前正在开发一个库,旨在自动化XML文档解析。但是我在第一次测试该库时遇到了问题。 我有一个名为CSXDocumentLayout的库类,表示文档的布局。这个类包含一个私有方法- (NSError *)rea...

10得票2回答
NSURL - 没有可变子类,因此属性不需要“copy”吗?

@interface SomeClass : NSObject @property (copy, nonatomic) NSString *usefulString; @property (strong, nonatomic) NSString *dangerousString; @p...

9得票3回答
我应该使用NSNumber代替基本的C数值类型吗?

使用Foundation框架中的NSNumber相比使用基本C类型(int,float,double)有何优势? 使用NSNumber: NSNumber *intNumber; NSInteger myInt; intNumber = [NSNumber numberWithIntege...

9得票1回答
Swift 3中用于枚举子字符串范围的enumerateSubstringsInRange的替代方法

我正在将代码从Swift 2升级到Swift 3,遇到了以下错误: wordcount.swift:7:5: error: value of type 'String' has no member 'enumerateSubstringsInRange' line.enumera...

9得票1回答
80年代的4月1日日期在iOS 10.0中无法解析。

我发现 DateFormatter 的 date(from:) 方法无法解析一些特定的日期。该方法对于 1981-1984 年的 4 月 1 日返回 nil。这是 Foundation 框架的一个 bug 吗?我们该如何解决这些日期的解析? Xcode 8.0,iOS SDK 10.0。以下...

9得票3回答
对象和NSObject之间的区别

我正在学习Objective-C,发现在一些教程中使用Object(从objc/Object.h导入),而在其他教程中看到使用NSObject(从Foundation/NSObject.h导入),它们之间的主要区别是什么? 谢谢。

9得票3回答
NSLock + atomic property vs nonatomic

我对Objective-C比较新手。如果我有一个类属性,很可能会在诸如API调用之类的异步事件中进行修改,那么确保在另一个线程访问该属性时更改该属性不会导致崩溃的最佳方法是什么? 据我所知,我有两个选择: 1. NSLock + atomic属性 ...但这样做似乎每次读写都要锁定该属性...

9得票2回答
在Objective-C中,使用instancetype作为复制的返回类型?

使用instancetype作为init和相关方法的返回值是推荐的做法,详见最新的clang特性。然而,关于NSCopying协议中的copyWithZone:方法的返回值的最佳实践是什么呢(参见之前的最佳实践这个帖子)?在clang文章的方法命名规则推断类时并没有提到这一点,但我认为它不应该...