I found a good discussion here, but I have one more question:
I know Objective-C implement reference counter through NSObject. Is ARC still supported if NSObject is not a base class?
No, the Swift language has it's own mechanism for automated reference counting that is not reliant on any particular base class. Check out the documentation here.