objective-c中对指针*是怎么用啊?

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return _firsClassArray.count;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

return [[_firsClassArray objectAtIndex:row] objectForKey:kTitleKey];
}
=======================
比如两个列子中,(nsinteger)就没有*号,而(nsstring *)就有*号,为什么啊?
最新回答
素颜繁华梦

2024-11-08 01:39:03

NSInteger 是整型数类型,typedef int NSInteger 固件长度字节数,直接可以返回;如果返回NSInteger*就是多余了,因为指针也是一个整型长度,比如
NSString 是字符串类型,长度不定,内存分配一般返回字符串起始地址,即是NSString*类型。
它的糖诗

2024-11-08 00:35:22

NSInteger, CGFloat, CGRect 等等都属于基本类型,基本类型在创建时一般被分配到“栈”上
NSString, NSArray等等都属于引用类型或指针类型,创建时被分配到“堆”上。在声明时用 * 来标识,一般的指针变量指向对象本身。
浅沫记忆

2024-11-08 00:44:07

整型,浮点型这种简单的数据类型是没有指针一说的,对象和数组才有指针,建议你这么理解
澜小丝光

2024-11-08 01:35:29

因为objective-c中要分配内存,需要内存的地址,像指针一样