我设置了以下值:[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.
我该如何解决这个问题?
答案 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
}