Objective-C对实现协议的对象的引用

时间:2015-06-05 08:41:18

标签: objective-c reference copy protocols

我想创建一个对实现协议的对象的引用。这是一个示例代码:

@interface TestClass ()
@property id <TestProtocol> testProperty;
@end

@implementation TestClass
+(id)init :(id <TestProtocol> test)
{
    TestClass *testClass = [[TestClass alloc] init]; 
    testClass.testProperty = test;
    return testClass;
}
@end

然后是否会创建实现协议或引用的测试对象的副本?我想知道因为没有&#34; *&#34;标志。如果是副本,我该如何创建引用呢?

1 个答案:

答案 0 :(得分:0)

类型var input = @"<a href=""/setprefs?suggon=2&amp;prev=https://www.test.com/search?q%3D%2Band%2B%26espv%3D2%26biw%3D960%26bih%3D489%26source%3Dlnms%26tbm%3Disch%26sa%3DX%26ei%3DYrxxVb-hJqac7gba0YOgDQ%26ved%3D0CAYQ_AUoAQ&amp;sig=0_seDQVVTDQQx1hvN3BRktZNFc9Ew%3D"" style=""left:-1000em;position:absolute"">Screen-reader users, click here to turn off ggg Instant.</a>"; var needle = @"href="""; var start = input.IndexOf(needle); if (start != -1) { start += needle.Length; var end = input.IndexOf(@"""", start); // final result: var href = input.Substring(start, end - start).Dump(); } 是一种指针类型,可以保存指向任何对象的指针。

Objective-C中没有类型包含&#34;对象&#34;本身。对象只能通过指向对象的指针来使用。