小编Kla*_*aas的帖子

如何测试实例是否是Swift中的特定类或类型?

Objective-C有两种方法来测试对象是否是特定类或子类的实例:

- (BOOL)isMemberOfClass:(Class)aClass;
Run Code Online (Sandbox Code Playgroud)

返回一个布尔值,指示接收者是否是给定类的实例.

- (BOOL)isKindOfClass:(Class)aClass;
Run Code Online (Sandbox Code Playgroud)

返回一个布尔值,指示接收者是给定类的实例还是从该类继承的任何类的实例.

在Swift中,我可以使用is运算符测试后者:

if myVariable is UIView {
    println( "I'm a UIView!")
}

if myVariable is MyClass {
    println( "I'm a MyClass" )
}
Run Code Online (Sandbox Code Playgroud)

如何测试实例是否是Swift中的特定类或类型(即使在处理没有NSObject子类时)?

注意:我知道func object_getClassName(obj: AnyObject!) -> UnsafePointer<Int8>.

swift

5
推荐指数
3
解决办法
3150
查看次数

有没有一种简单的方法来查找框架的所有依赖项?

在Objective-C中用Swift /类别编写扩展时,我必须决定在Xcode项目中组织它们的结构化方法.我认为考虑不同Apple框架的依赖关系是个好主意.

让我们看一下框架的MKMapViewMapKit.它有一个属性centerCoordinate类型的属性CLLocationCoordinate2D.并且CLLocationCoordinate2D属于CoreLocation框架.因此,MapKit框架取决于CoreLocation框架.

(见https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKMapView_Class/index.html#//apple_ref/occ/instp/MKMapView/centerCoordinate)

我知道我可以浏览相应的头文件来收集我正在寻找的信息.但这很乏味.

是否在某处概述了iOS/MacOS SDK附带的所有Apple框架的依赖关系?或者更方便的方法来确定它们?

macos xcode ios

4
推荐指数
1
解决办法
1119
查看次数

有人可以解释一下 URLResourceKeys 是什么吗?

我正在查看文档 contentsOfDirectory(at:includingPropertiesForKeys:options:)

特别是我一直专注于论点includingPropertiesForKeys,它说:

一组键,用于标识您希望为目录中的每个项目预取的文件属性。对于每个返回的 URL,指定的属性被提取并缓存在 NSURL 对象中。有关您可以指定的键列表,请参阅通用文件系统资源键。

单击URLResourceKey使我找到了有关它的 Apple 文档。

我想知道,如果我像钥匙过去了fileResourceTypeKeyfileResourceIdentifierKeycreationDateKey我怎么能访问那些在返回的URL列表(呼叫后contentsOfDirectory(at:includingPropertiesForKeys:options:))?

我也对URLResourceKeyenum b/ca感到困惑,许多类型与其他键具有相似的描述和名称,例如:

  • documentIdentifierKey对比fileResourceIdentifierKey对比localizedNameKey对比nameKey
  • localizedTypeDescriptionKey对比fileResourceTypeKey对比typeIdentifierKey
  • contentsOfDirectory(at:includingPropertiesForKeys:options:)vs返回的网址pathKey

就像这些键之间有什么区别?

基本上我此时对文件系统的了解非常低,所以请忍受我的“简单”问题。如果有人能解释所有这些密钥的含义以及我如何访问/使用它们,那就太好了!

nsfilemanager swift

4
推荐指数
1
解决办法
1512
查看次数

我该如何构建这个视图呢?

我很难找到构建这种设计的最佳方法.

顶视图具有最小高度,并在达到此高度时变粘.底部视图托管一个具有三个视图的分页控制器.这些视图中的每一个都承载具有垂直滚动的集合视图或表视图.

我真的不知道如何处理这个问题.整个视图是否可滚动,我应该阻止在第二个视图上滚动,直到顶视图达到它的粘性高度?或者这些视图中的每一个都是单独的uitableviews,而寻呼控制器只是一个单元格?我是否应该使用分页控制器,还是应该使用启用分页的scrollview?(后者有点粗糙的互动方式)

谢谢!

在此输入图像描述

uitableview ios uipageviewcontroller

3
推荐指数
1
解决办法
522
查看次数

在手势识别器动作方法中更改`SKNode`s是否安全?

Apple在https://developer.apple.com/documentation/spritekit/skscenedelegate中说明:

修改受约束的回调之外的SpriteKit对象(后台队列或任何其他非主线程)可能导致与并发相关的问题.即使异步或稍后在主线程上调度工作也存在风险,因为关闭很可能是在SpriteKit期望的时间范围之外完成的.如果您遇到SpriteKit框架内部发生的分段错误或其他类型的崩溃,那么您的代码很可能会在正常回调之外修改SpriteKit对象.

我正在使用手势识别器与我的精灵工具包对象进行交互.一个简单的例子是当用户点击一个对象时向节点添加一个SKAction:

func tapAction(gr:UITapGestureRecognizer) {
    scene.childNode(withName: "balloon")!.run(SKAction.fadeOut(withDuration: 2))
}
Run Code Online (Sandbox Code Playgroud)

尽管这一点"暂时正常",但我担心这在更复杂的情况下不起作用.

苹果有任何暗示这是允许的吗?或者我是否真的必须将SpritKit对象的修改从手势动作推迟到规定的回调?

multithreading gestures uigesturerecognizer ios sprite-kit

3
推荐指数
1
解决办法
134
查看次数

Mac OSX 上的 UICollectionView 等效项

我有一个 iPad 应用程序,它使用UICollectionView包含标签来显示数组中的字符串项。我现在正在为 OSX 创建应用程序,但我不确定如何执行此操作或应该使用什么。

Mac 上有类似的吗?

macos xcode uicollectionview osx-yosemite

2
推荐指数
1
解决办法
3489
查看次数