Tag: 包装

Swift中可选的包装,为什么Swift将“可选”添加到string

我将一个数组保存到模型中,当保存数据不包含可选(…),但是当数据正在读取时,我得到可选(…)环绕它。 感谢您的帮助和耐心,因为我是Swift新手。 在将值添加到模型时,这是println : saveOperativesInModel: Test Name 从模型中读取值时,这是println : getOperativesFromModel: Optional(Test Name) 为什么Swift将“Optional(xxx)”添加到string? 这是简化的代码: func saveOperativesInModel() { let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate let managedContext = appDelegate.managedObjectContext! let entity = NSEntityDescription.entityForName("Operatives", inManagedObjectContext: managedContext) var item: NSManagedObject! if let operativesList = self.operativesResult?.operativesList { self.operativesTable.removeAll() for itemInArray in operativesList { item = NSManagedObject(entity: entity!, insertIntoManagedObjectContext:managedContext) item.setValue(itemInArray.firstName, forKey: […]

SQLite“数据库磁盘映像格式不正确”

我遇到SQLite数据库被损坏的应用程序的问题。 以前有过这种奇怪的情况,但在iOS 7.1发布之后,它似乎已经变得更加普遍了。 我使用Matteo Bertozzi的SQLite包装,你可以在这里find: https : //github.com/ConnorD/simple-sqlite 数据库被破坏,并吐出错误database disk image is malformed ,一些查询可以运行,但现有的数据会搞砸。 我search了高和低,并找不到解决scheme,我希望有人在这里有一些想法,因为这是iOS更新后成为一个更常见的问题。 我试过这些修复命令: [sqlite executeNonQuery:@"pragma integrity_check"]; [sqlite executeNonQuery:@"reindex nodes"]; [sqlite executeNonQuery:@"reindex pristine"]; 产出是: SQLite Step Failed: database disk image is malformed SQLite Prepare Failed: unable to identify the object to be reindexed – Query: reindex nodes SQLite Prepare Failed: unable to identify […]

如何为着色器devise一个简单的GLSL包装器

更新:因为我马上需要一些东西,所以我创build了一个简单的着色器包装器,它可以处理我需要的东西。 你可以在这里find它: GitHub上的ShaderManager 。 请注意,它是为Objective-C / iOSdevise的,因此可能对每个人都没用。 如果您有任何关于devise改进的build议,请告诉我! 原始问题: 我是使用GLSL着色器的新手。 我对GLSL语言和OpenGL接口非常熟悉,但是在devise使用着色器的简单API时遇到了麻烦。 OpenGL的C接口与着色器交互看起来很麻烦。 我似乎无法在网上find任何涵盖这些APIdevise的教程。 我的问题是: 任何人都有一个好的,简单的APIdevise或模式来包装OpenGL着色器程序API? 以下面的简单例子。 假设我有一个模拟固定function的顶点着色器和两个片段着色器 – 一个用于绘制光滑的矩形,一个用于绘制光滑的圆。 我有以下文件: Shader.vsh : Simple vertex shader, with the following inputs/outputs: — Uniforms: mat4 Model, mat4 View, mat4 Projection — Attributes: vec4 Vertex, vec2 TexCoord, vec4 Color — Varying: vec4 vColor, vec2 vTexCoord Square.fsh : Fragment shader […]

用于CFunctionPointer的Objective-C包装到Swift Closure

我在玩Swift,注意到Swift不允许创buildCFFunctionPointers。 它只能通过和参考现有的。 例如CoreAudio需要CFunctionPointer来确定callback,因此我不能使用纯Swift。 所以我需要使用一些Objective-C的蹦床或包装,这需要一个Swift Closure作为参数,以及原始的callback原型,然后可以被指定为callback,但实际的行动发生在Swift而不是Objective-C 。 我该怎么做呢? 这样的包装的一些示例代码将帮助我了解如何从目标C中使用Swift代码用于这种目的以灵活的方式解决Swift无法创buildCFunctionPointers。 是的,我知道我只需要在Objective-C中写需要的东西。 我想在纯Swift中做一个学习练习,将我的一个应用程序移植到Swift(使用大量的CoreAudio / CoreVideo框架)。