0

我正在开发应用内电子邮件功能,现在我有[mailer setSubject:@"Someone has sent you a haiku."];. 如何设置它以将“某人”替换为 iPhone 所有者的姓名,并且主题为“John Doe has sent you ahaiku”?

4

3 回答 3

3

如本文所述,无法获取用户的姓名,因为这是一个隐私问题。您可以在首次应用程序设置中询问用户他或她的姓名,然后存储此信息。当然,您希望为用户提供一种稍后通过设置视图或类似方式更改它的方法。

但是,您可以找到正在运行的 iPhone 的名称,这些名称通常被命名为“John's iPhone”。因此,您可能会发现发送诸如“John 的 iPhone 已向您发送俳句”之类的消息是可以接受的。如果这对您有用,您可以获取 iPhone 的名称并将其插入到您的字符串中,如下所示:

[mailer setSubject:[NSString stringWithFormat:@"%@ has sent you a haiku.", [[UIDevice currentDevice] name]]];
于 2012-08-12T06:42:29.490 回答
2

Apple 的沙盒不允许您获取有关 iPhone 用户的电子邮件、联系信息等。您可能可以找到一些方法来做到这一点,但如果您提交到商店,它们通常不会通过集合。

你可以得到电话的名字: [[UIDevice currentDevice] name];

这至少是一个公共 API,并且似乎取得了一些成功。

否则,您应该只询问用户他们想要使用的名称。它更好 - 也许他们无论如何都想加上一个昵称。

于 2012-08-12T06:41:35.663 回答
2
NSString *deviceName = [[UIDevice currentDevice] name]; // John's iPhone
NSRange r = [deviceName rangeOfString:@"'"]; // { 4; 1 }
NSString *user = [deviceName substringToIndex:r.location];

NSString *subject = [NSString stringWithFormat:@"%@ has sent you a haiku", user];

/* Assumes that the device name contains the user's name as the part before an aphostrophe.
 * If this isn't the case, you have to check for something else.
 */
于 2012-08-12T06:41:57.540 回答