我正在尝试编写一个函数,该函数返回从两个输入字符串创建的字符串;
但是当我尝试功能声明时
NSString Do_Something(NSString str1, NSString str2)
{
}
Run Code Online (Sandbox Code Playgroud)
编译器生病了.(对于带有int参数的不同函数,可以正常工作.)
如果我将输入参数更改为指向字符串的指针,那么也会生病.
那么如何将Objective-C对象传递给函数呢?
传递给函数的所有Objective-C对象都必须是指针.像这样重写它将修复编译器错误:
NSString *Do_Something(NSString *str1, NSString *str2) { }
Run Code Online (Sandbox Code Playgroud)
另外,请记住,这是一个(C风格)函数,而不是写在Objective-C对象上的实例方法.如果你想让它实际上是一个对象的方法,它可能看起来像这样:
NSString *doSomethingWithString1:(NSString *)str1 string2:(NSString *)str2 { }
Run Code Online (Sandbox Code Playgroud)
我说"可能"因为你可以根据需要命名.
Objective-C中的函数完全正常(实际上可以获得一些语言的好处).
看到我对C函数的回答总是向Objective C返回零,其中有人正在尝试你的样子并且编译器遇到返回类型的问题.当您使用函数时,我在那里设置的结构非常重要,就像您使用对象和方法一样.一定要让你的标题正确.
要迂腐,你正在使用以下函数定义:
NSString *DoSomething(NSString *str1, NSString *str2) {
// Drop the _ in the name for style reasons
}
Run Code Online (Sandbox Code Playgroud)
你应该在这样的文件中声明它.h:
NSString *DoSomething(NSString *str1, NSString *str2);
Run Code Online (Sandbox Code Playgroud)
就像C.
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |