0

在我的 Mac OS 应用程序中,我有 NSTask 调用 Python 脚本,然后通过 NSPipe返回“已连接” 。然后我读取我的 Obj-C 类中的数据,并将其放入一个字符串中:

NSMutableData *data = [[NSMutableData alloc] init];
NSData *readData;

while ((readData = [readHandle availableData])
       && [readData length]) {
    [data appendData: readData];
}

NSString *aString;
aString = [[NSString alloc]
                  initWithData: data
                  encoding: NSASCIIStringEncoding];

NSLog(@"append%@me",aString);

后来当我尝试将输出与另一个字符串连接时,我不能 - 它打印在另一行:

appendconnected
me

而且,我不能用以下方法测试字符串:

if ([string isEqualToString:@"connected"]) {
    NSLog(@"yes");
} else {
    NSLog(@"no");
}

它表明它们并不相等,尽管它们是!

为什么?

4

1 回答 1

0

流中有换行符。

你如何在 python 端打印数据?

如果您使用print "connected",它也会输出一个换行符。

请注意,输出换行符可能会导致在管道关闭(或写入更多数据)之前无法读取数据,因为系统可能会缓冲一些内容。

于 2012-07-30T15:41:54.617 回答