在尝试获取价值时,类不符合关键值编码

时间:2014-05-13 19:05:55

标签: xcode get key

我设置了以下值:[self.networkStream setProperty:(id)kCFBooleanTrue forKey:(id)kCFStreamPropertyFTPUsePassiveMode];但在此之前我想检查它当前有什么值。但我无法弄清楚如何阅读它的价值。

我有一个布尔变量,名为" usepassive"。我需要做的是将上面的值与usepassive进行比较。

我试过了:

BOOL status = [self.networkStream valueForKey:(id)kCFStreamPropertyFTPUsePassiveMode];
if (status != usepassive)
        {

结果是错误:[<__NSCFOutputStream 0x107d25d90> valueForUndefinedKey:]: this class is not key value coding-compliant for the key kCFStreamPropertyFTPUsePassiveMode.

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

  • [networkStream setProperty:... forKey:...]的对应方为[networkStream propertyForKey:...]

  • propertyForKey返回id(指向Objective-C对象的指针),可以是 使用BOOL转换为boolValue

所以以下内容应该有效:

BOOL usePassive = [[self.networkStream propertyForKey:(id)kCFStreamPropertyFTPUsePassiveMode] boolValue];
if (usePassive) {
    // passive mode enabled
} else {
    // passive mode disabled
}