장치 이름에서 사용자 이름 을 추출하는 기능을 만들었습니다.기기에서 사용자 이름을 찾는 더 나은 방법은 무엇입니까?
은 사용자가 앱을 처음 시작할 때을 바로 재생할 수 있도록 설정 단계를 건너 뜁니다.
이것은 사용자의 이름을 보유하기 위해 장치 이름을 절대로 믿을 수 없으므로 최적의 방법이 아닙니다.입니다. 질문 : 이 작업을 수행하는 더 좋은 방법은 무엇입니까?
아래 내 기능이 올바른 이름을 가져옵니다 ...
- ... 장치의 기본 이름이 영어 ("사나의 아이팟")
- ... 변경되지 않은 경우,
- ... 프랑스어 등으로 ("iPod de Sanna")
- ... 이름이 S로 끝나지 않는 경우 스웨덴어 및 이와 유사한 ("Sannas iPod") ("Johannes iPod"=> "Johanne "하지만 Johannes는 올바른 것으로 반환해야하며 이름 자체는 S.로 끝납니다.
사용자가 장치의 이름을 기본 양식 이외의 것으로 변경 한 경우 분명히 이름을 얻지 못합니다.
- (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