0

我需要为我的 iOS 应用程序使用 Redis,我从https://github.com/lp/ObjCHiredis下载了库并在我的计算机上安装了 Redis。然后我创建了一个小程序来看看它是否可以工作。这是我在下面得到的输出,您可以在http://pastebin.com/uduB92cf阅读代码。

2012-05-29 10:32:34.186 RedisVideo[19023:707] loaded
2012-05-29 10:32:34.262 RedisVideo[19023:707] redis created
2012-05-29 10:32:34.276 RedisVideo[19023:707] __NSCFString
2012-05-29 10:32:34.277 RedisVideo[19023:707] subscribe
2012-05-29 10:32:34.280 RedisVideo[19023:707] __NSCFString
2012-05-29 10:32:34.281 RedisVideo[19023:707] CHANNELZ
2012-05-29 10:32:34.283 RedisVideo[19023:707] __NSCFNumber
2012-05-29 10:32:34.284 RedisVideo[19023:707] 1
2012-05-29 10:32:34.290 RedisVideo[19023:707] command sent
2012-05-29 10:32:34.291 RedisVideo[19023:707] ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / QUIT allowed in this context
2012-05-29 10:32:34.320 RedisVideo[19023:707] command sent
2012-05-29 10:32:34.321 RedisVideo[19023:707] there was a response
2012-05-29 10:32:34.323 RedisVideo[19023:707] ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / QUIT allowed in this context
2012-05-29 10:32:34.325 RedisVideo[19023:707] command time over
4

1 回答 1

0

我不得不在惰性证实方法中删除订阅频道的调用。

-(ObjCHiredis*) redis
{
    if(!redis)
    {
        redis = [ObjCHiredis redis:@"10.0.0.5" on:[NSNumber numberWithInt:6379] db:[NSNumber numberWithInt:0]];
        NSLog(@"redis created");
//        [redis command:@"SUBSCRIBE CHANNELZ"];
//        id retVal =  [redis command:@"SUBSCRIBE CHANNELZ"];
//        if( [retVal isKindOfClass:[NSString class]] )
//        {
//            NSLog(@"%@",(NSString*)retVal);
//        }
//        else if( [retVal isKindOfClass:[NSArray class]] )
//        {
//            for (id foo in retVal)
//            {
//                NSLog(@"%@",[foo class]);
//                if( [foo isKindOfClass:[NSString class]] )
//                {
//                    NSLog(@"%@",(NSString*)foo);
//                }
//                else if( [foo isKindOfClass:[NSNumber class]] )
//                {
//                    NSLog(@"%d",[(NSNumber*) foo intValue]);
//                }
//            }
//        }
    }
    return redis;
}
于 2012-05-29T07:52:03.573 回答