デバイス名からというユーザ名をという名前で抽出する機能を作った。デバイスからユーザーの名前を取得すると便利ですか?
は、最初にアプリを起動するときにユーザがをプレイするためにまっすぐに進むことを可能にする設定手順をスキップすることです。
これは、ユーザーの名前を保持するためにデバイス名を信頼することはできないので、これは最適な方法です。です。問題は次のとおりです。これを行うにはどうすればよいでしょうか?デバイスのデフォルト名は( "サンナのiPod")変更されていない場合は、以下の
My機能は、英語で...
- を右の名前を取得します
- ...フランス語などでも同様です(「iPod de Sanna」)
- ...スウェーデン語などで「Sannas iPod」という名前がSで終わらない場合(「Johannes iPod」=>「Johanne名前自体がSで終わるので、「Johannes」を正しく返すべきである)
ユーザーがデバイスの名前を既定のフォーム以外に変更した場合、明らかに名前が正しく表示されません。
- (NSString *) extractPlayerNameFromDeviceName: (NSString *) deviceName {
// get words in device name
NSArray *words = [deviceName componentsSeparatedByString:@" "];
NSMutableArray *substrings = [[NSMutableArray alloc] init];
for (NSString *word in words) {
NSArray *subwords = [word componentsSeparatedByString:@"'"];
[substrings addObjectsFromArray:subwords];
}
// find the name part of the device name
NSString *playerName = [NSString stringWithString: @""];
for (NSString *word in substrings) {
if ([word compare:@"iPhone"] != 0
&& [word compare:@"iPod"] != 0
&& [word compare:@"iPad"] != 0
&& [word length] > 2) {
playerName = word;
}
}
// remove genitive
unichar lastChar = [playerName characterAtIndex:[playerName length] - 1];
if (lastChar == 's') {
playerName = [playerName substringToIndex:[playerName length] - 1];
}
lastChar = [playerName characterAtIndex:[playerName length] - 1];
if (lastChar == '\'') {
playerName = [playerName substringToIndex:[playerName length] - 1];
}
return playerName;
}
私のアプリでユーザー名を提案するために使用します。このようにして、ほとんどのユーザーはユーザー名の書き込みを気にする必要はありません。
私のアプリはiTunesやFacebookのような他のサービスには接続されていませんが、すべてのユーザーはユーザー名が必要です。だから私はどのように名前を取得するのですか?
サービスですアプリケーションの外部で使用できますか?例えばPC上ではどういう意味ですか? –
'[[UIDevice currentDevice] name]'はあなたが望むものを返しますか? –
@HenriNormak:いいえ、これは基本的にどこにも接続していないiPhone/iPod用のアプリです。 – JOG