0

我有一个 iOS 应用,它在应用商店里已经存在一年多了。最新版本发布于 4 月 17 日。此应用程序的目的是允许用户创建一个国际象棋便携式游戏符号 (PGN) 文件,并将其从 iPhone 或 iPad 通过电子邮件发送到他们的台式计算机。然后电子邮件附件可以被任意数量的国际象棋数据库应用程序读取。

在上周,我有两个用户向我反馈说附件未包含在他们的电子邮件中。有人向我展示了邮件编写器的屏幕截图,显示它是由附件组成的。

无法发送 PGN 附件对于这个应用程序来说是一个严重的问题,所以如果这是一个普遍的问题,我会收到两个以上用户的反馈。

其中一个用户发送到 gmail 帐户,另一个发送到 iCloud 帐户。一位用户报告说,一位使用相同 WiFi 连接的朋友能够从他的 iPad 发送电子邮件附件而没有问题。他还能够发送屏幕截图并回复我在其中附加了 PGN (mimeType:@"text/pgn") 文件的消息。

我的邮件编写器代码来自 Apple 示例,并且已经为世界各地的用户工作了一年多。

有没有人有类似的经历?我担心我在一周内遇到了两个关于应用程序中已存在一年多的代码的问题。

谢谢!

附件是一些添加附件数据的代码。
请注意,附件不是“文件”。

PgnGenerator *generator = [[PgnGenerator alloc] init];
generator.game = inGame;

NSString *pgn = [generator pgnString];

NSData *myData = [pgn dataUsingEncoding:NSASCIIStringEncoding];

NSString* fileName = [NSString stringWithFormat:@"%@.pgn", [inGame eventAndRound]];

[picker addAttachmentData:myData mimeType:@"text/pgn" fileName:fileName];

使用

NSData *myData = [pgn dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

解决了这个问题。
“例如,在将字符从 NSUnicodeStringEncoding 转换为 NSASCIIStringEncoding 时,字符 'Á' 变成了 'A',失去了重音。”

许多将读取 PGN 文件的国际象棋应用程序无论如何都无法处理重音字符,因此在规范更新之前,丢失重音是最好的解决方案。

4

2 回答 2

0

我之前已经注意到,即使我要附加的文件在设备上不存在,邮件编写器仍会显示为好像要附加文件一样。然后,当电子邮件发送时,附件不存在。

这种情况有可能发生吗?

于 2013-07-16T15:25:32.973 回答
0

在我使用 NSASCIIStringEncoding 的情况下,NSString 在 iOS7 上返回 nil(它在 iOS6 上运行良好),NSUTF8StringEncoding 运行良好

于 2013-09-24T13:32:26.990 回答