2014-12-22 1 views
0

모든 인앱 객체에 대해 고유 한 idenitfier를 생성하는 간단한 방법이 있습니까? (동일한 데이터를 가진 객체가 내 상황에서는 괜찮기 때문에 해시를 사용할 수 없습니다) ID는 문자열 또는 정수이며 로컬 고유성 만 필요합니다. 당신이 정말로 얻고 싶은 경우에신속한 객체의 UID

let first = MyObject(value: 1) 
let second = MyObject(value: 1) 

first == second // returns true 
first === second // returns false 

: 당신이 할 필요가 별개 ==와 동등한 비교 두 개체, 당신은 === 연산자를 사용할 수 있는지 확인하는 경우 구글은

+0

개체를 관리하는 사용자 지정 클래스를 사용하여 개체에 고유 식별자를 할당 할 수는 없습니까? – Rambatino

+0

[NSUUID Class] (https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSUUID_Class/index.html)를 참조하십시오. – Darren

+0

감사합니다. NSUUID가 필요한 것 같습니다. – maxpovver

답변

1

도움이되지 않습니다 고유 식별자는 스위프트 표준 라이브러리에 동굴 탐험하는 것은 계시 :

/// Return an UnsafePointer to the storage used for `object`. There's 
/// not much you can do with this other than use it to identify the 
/// object 
func unsafeAddressOf(object: AnyObject) -> UnsafePointer<Void> 

내가 그 사용의 타당성을 보장하지 않습니다. 그것은 컴파일러에 의해 잡아 당겨진 copy-on-write 헛소리에 따라 당신이 생각하는 것처럼 작동하지 않을 수도 있습니다.

+0

의견의 NSUUID가 아닌 이유는 무엇입니까? 예를 들어, 파일이나 네트워크에서 객체 세트를 재생성 한 후에는 변경되지 않는 무언가가 필요합니다. 객체의 주소가 최상의 솔루션이라는 것을 확신하지 못합니다. – maxpovver

+0

아, 내가 필요한 것을 이해하지 못했습니다. 특히 "유일무이 한 지역 만 필요합니다."라고 말했을 때 특히 그렇습니다. 아 글쎄 ... – dpassage

+0

동일한 실행중인 앱에서 만든 객체 만 고유 ID를 가져야한다는 의미였습니다. 영어로 불편을 드려 죄송합니다. 명확하게 말할 필요가 없습니다. 오랫동안 연습하지 않았습니다. – maxpovver