【发布时间】:2015-03-02 00:28:02
【问题描述】:
目标等级:
@interface EpsonIo: NSObject {
@private
void *handle_;
}
- (id) init;
- (void) dealloc;
- (int) open:(int)deviceType DeviceName:(NSString *)deviceName DeviceSettings:(NSString *)deviceSettings;
- (int) close;
- (int) write:(NSData *)data Offset:(size_t)offset Size:(int)size Timeout:(long)timeout SizeWritten:(size_t *)sizeWritten;
- (int) read:(NSMutableData *)data Offset:(size_t)offset Size:(size_t)size Timeout:(long)timeout SizeRead:(size_t *)sizeRead;
@end
我正在尝试使用这个类来使用我的 Epson 打印机进行打印。在我的旧 Objective-C 项目中,我可以毫无问题地打印它。
旧的 Objective-C:
// print document
EpsonIo *port = [[EpsonIo alloc] init];
if (port != nil)
{
int errorStatus = EPSONIO_OC_SUCCESS;
errorStatus = [port open:EPSONIO_OC_DEVTYPE_TCP DeviceName: @"192.168.1.168" DeviceSettings:nil];
if (EPSONIO_OC_SUCCESS == errorStatus)
{
// settings for sending
unsigned long sizeWritten;
int errStatus;
NSData *data = builder.data;
errStatus = [port write:data Offset:0 Size:[data length] Timeout:100 SizeWritten: &sizeWritten];
errorStatus = [port close];
}
}
在 Swift 中,我遇到了各种错误,例如“Int is not convertible to Int32”、“Uint is not convertible to UnsafeMutablePointer”
斯威夫特:
var printFile = EpsonIo()
var errorStatus: Int32 = 0
errorStatus = printFile.open(257, deviceName: "192.168.1.168", deviceSettings: nil)
var printData: NSData = printText.data
var sizeWritten: CUnsignedLong = 0
var newStatus = printFile.write(printData, offset: 0, size: Int(printData.length), timeout: 100, sizeWritten: sizeWritten)
我已经尝试了几个小时并尽可能多地在 Google 上搜索,但我就是想不通...有人可以帮帮我吗?
【问题讨论】:
标签: objective-c class swift