在我的Mac OS应用程序中,我有NSTask调用Python脚本,然后通过NSPipe返回“connected”。然后我读取了我的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");
}
它表明它们并不相同,尽管它们是!
为什么?
答案 0 :(得分:0)
流中有换行符。
你如何在python端打印数据?
如果您使用print "connected"
,它也会输出换行符。
请注意, not 输出换行符可能会导致数据在管道关闭(或写入更多数据)之前不被读取,因为系统可能会稍微缓冲一些内容。