If you switch your Objective-C project to ARC or start a new project based on ARC you could use __weak delegates. But if you try to mock them with OCMock, it fails.