当我使用Xcode 4.4创建一个新项目并添加以下行时:
NSDictionary *test = @{ @"key" : @"test value" };
NSString *value = test[@"key"];
NSLog(@"value is: %@", value);
Run Code Online (Sandbox Code Playgroud)
它编译时没有警告并按预期执行.
将相同的行添加到现有项目会产生编译器错误:
NSString *value = test[@"key"]; <-- Expected method to read dictionary element not found on object of type 'NSDictionary *'
Run Code Online (Sandbox Code Playgroud)
我比较了两个项目的目标构建设置,但没有任何东西在我身上跳跃.
更新: 成功编译的新项目是针对OSX的.我用上面的代码尝试了另一个新的iOS版本,它无法编译,就像我之前存在的(iOS)项目一样.
可以合并到JPEG文件中的元数据量(EXIF等)的理论最大值是多少?我想分配一个缓冲区,确保足以保存任何JPEG图像的元数据,而无需自己解析它.
某些C API(例如glGetShaderInfoLog)在缓冲区中返回字符数组.我需要将它们转换为字符串才能使用它们.
var value: GLint = 0
glGetShaderiv(shader, GLenum(GL_INFO_LOG_LENGTH), &value)
var infoLog: GLchar[] = GLchar[](count: Int(value), repeatedValue: 0)
var infoLogLength: GLsizei = 0
glGetShaderInfoLog(shader, value, &infoLogLength, &infoLog)
var s: String = NSString.stringWithUTF8String(infoLog) // Compile Error: Cannot convert the expression's type 'NSString!' to type 'CString'
Run Code Online (Sandbox Code Playgroud)
在这个例子中,GLchar映射到Swift类型的CChar AKA Int8但是在我的生命中,我找不到将用它初始化的String或NSString方法.
我正在尝试在Xcode 6 OS X Swift Playground中使用GLKit但是
import GLKit
Run Code Online (Sandbox Code Playgroud)
似乎不足以使Playground识别GLKView.有任何想法吗?
import Cocoa
import GLKit
import OpenGL
let frame = CGRect(x: 0, y: 0, width: 400, height: 300)
class TriangleView: GLKView { // ERROR: Use of undeclared type 'GLKView'
override func drawRect(dirtyRect: NSRect) {
glClearColor(0.0, 0.0, 0.1, 1.0)
}
}
Run Code Online (Sandbox Code Playgroud)