weakObj should be __weak