3
class TestClass : NSObject {
var definitions: NSSet = NSSet()
func addDefinitionsObject(value: AnyObject) {
self.mutableSetValueForKey("definitions").addObject(value)
}
func removeDefinitionsObject(value: AnyObject) {
// this method is never called
self.mutableSetValueForKey("definitions").removeObject(value)
}
}
var test = TestClass()
test.addDefinitionsObject("yo")
실행하면 무한 재귀가 발생하여 궁극적으로 EXC_BAD_ACCESS와 충돌합니다. 왜 이런 일이 일어나고 있는거야?왜 다음 코드가 무한 재귀를 초래합니까?
이상한 점은 removeDefinitionsObject
이 정의 된 경우에만 발생한다는 것입니다. 해당 기능을 제거하면 문제가 해결됩니다.
와우, 생성 된 목록 뮤 테이타? addDefinitionsObject의 이름을 다른 것으로 변경해도이 문제가 해결됩니다. 이는 정말 이상하게 보입니다. – carlossless
성취하려는 것은 무엇입니까? – zaph