Rav*_*avi 1 iphone methods function objective-c ios
我已经看到这个Stackoverflow中的代码块作为一些问题的答案,我试图在我的代码中恭维,但我不知道这是什么类型的功能,我怎么能称之为
NSString * ReplaceFirstNewLine(NSString * original)
{
NSMutableString * newString = [NSMutableString stringWithString:original];
NSRange foundRange = [original rangeOfString:@"\n"];
if (foundRange.location != NSNotFound)
{
[newString replaceCharactersInRange:foundRange
withString:@""];
}
NSLog(@"%@",newString);
return [[newString retain] autorelease];
}
Run Code Online (Sandbox Code Playgroud)
我试图称之为,[self ReplaceFirstNewLine(@"\nstirng\nstring")];
但它给出语法错误,任何人都可以帮助我
首先,它不是a method,它是C function,类似于NSLog,所以请使用它:
NSString *results = ReplaceFirstNewLine(@"\nstirng\nstring");
NSLog(@"%@", results);
Run Code Online (Sandbox Code Playgroud)
C风格的功能有优点和缺点,我会尝试在这里列出其中一些:
好处:
速度.AC函数几乎总是比等效的objective-c方法快,因为调用函数不需要动态调度
指针.获取指向C风格函数的指针比使用Objective-C方法更容易,这使得它更适合于C API回调
缺点:
高德.在C函数中,您无法访问对象的私有变量(即使是对它的引用),而不使用运行时向导,此时,它确实不值得.
没有概念self.您不能在C函数中使用self(或者_cmd就此而言)变量,因为每个C函数都独立于产品中的其他函数.
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |