시스템 GeneratedUID를 프로그래밍 방식으로 가져 오려고합니다. "dscl. -search / Users GeneratedUID 00052AE8-5000-6000-9007-666F6B666A66"을 사용하여 명령 줄에서 UID를 가져올 수 있습니다.
누구든지이 GeneratedUID를 프로그래밍 방식으로 얻는 방법을 도울 수 있습니까?
이것은 나를 위해 일했습니다. 현재 사용자에 대해 찾은 첫 번째 GeneratedUID를 반환하거나 아무것도 발견되지 않으면 nil을 반환합니다.
처리해야 할 오류가 많기 때문에 논리가 실제보다 복잡해집니다.
-(NSString*) getGeneratedUID {
NSString* retval = nil;
ODSession *mySession = [ODSession defaultSession];
NSError *err;
ODNode *myNode = [ODNode nodeWithSession:mySession type:kODNodeTypeAuthentication error:&err];
NSString* username = NSUserName();
ODQuery *myQuery = [ODQuery queryWithNode: myNode
forRecordTypes: kODRecordTypeUsers
attribute: kODAttributeTypeRecordName
matchType: kODMatchEqualTo
queryValues: username
returnAttributes: kODAttributeTypeStandardOnly
maximumResults: 0
error: &err];
if (err) {
NSLog(@"Error creating current user query: %@", [err localizedDescription]);
}
else {
NSArray* queryResults = [myQuery resultsAllowingPartial:NO error:&err];
if (err) {
NSLog(@"Error executing current user query: %@", [err localizedDescription]);
}
else {
if ( [queryResults count] > 0 ) {
ODRecord* firstQueryResult = [queryResults objectAtIndex:0];
NSArray* uidValues = [firstQueryResult valuesForAttribute:@kDS1AttrGeneratedUID error:&err];
if (err) {
NSLog(@"Error getting GeneratedUID attribute for current user: %@", [err localizedDescription]);
}
else {
if ([uidValues count] > 0) {
retval = (NSString*) [uidValues objectAtIndex:0];
}
else {
NSLog(@"No GeneratedUID values for current username: %@", username);
}
}
}
else {
NSLog(@"No results from current user query for username: %@", username);
}
}
}
return retval;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다