42 objective-c
我有一个非常基本的问题.我是一名新的iPhone程序员.我的问题是,任何人都可以告诉我如何通过引用obj中的函数来传递值.C?我知道如何在VB和C#中做到这一点.但不知道如何在Obj c中做到这一点.
谢谢
Dar*_*ren 90
Objective-C中的传递引用与C中的相同.
相当于以下C#代码:
void nullThisObject(ref MyClass foo)
{
foo = null;
}
MyClass bar = new MyClass();
this.nullThisObject(ref bar);
assert(bar == null);
Run Code Online (Sandbox Code Playgroud)
是
- (void)nilThisObject:(MyClass**)foo
{
[*foo release];
*foo = nil;
}
MyClass* bar = [[MyClass alloc] init];
[self nilThisObject:&bar];
NSAssert(bar == nil);
Run Code Online (Sandbox Code Playgroud)
和
- (void)zeroThisNumber:(int*)num
{
*num = 0;
}
int myNum;
[self zeroThisNumber:&myNum];
NSAssert(myNum == 0);
Run Code Online (Sandbox Code Playgroud)
ttv*_*tvd 13
目标C中没有通过引用传递(在C++意义上).您可以通过指针传递对象,按值传递原始类型.
例:
void func(NSString* string)
{
...
}
void func(NSInteger myint)
{
...
}
..
NSString* str = @"whatever";
NSInteger num = 5;
func(str);
func(num);
Run Code Online (Sandbox Code Playgroud)
Pet*_*wis 13
如果您使用Objective C++,您可以通过使用扩展名.mm命名文件,或者告诉Xcode将所有源代码编译为Objective C++,那么您可以像使用C++一样传递引用,例如:
- (OSStatus) fileFileInfo: (FileInfo&)fi;
Run Code Online (Sandbox Code Playgroud)
小智 6
试试这种方式:
-(void)secondFunc:(NSInteger*)i
{
*j=20;
//From here u can change i value as well
//now i and j value is same (i.e i=j=20)
}
-(void) firstFunc
{
NSInteger i=5;
[self secondFunc :&i];
//i value is 20
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!!
| 归档时间: |
|
| 查看次数: |
60056 次 |
| 最近记录: |