ios-得到警告:指针类型不兼容

问题描述

得到警告:指针类型不兼容
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@""self"" ascending:YES];sortedFloats = [Arr_distance sortedArrayUsingDescriptors:                    [NSMutableArray arrayWithObject:sortDescriptor]];

其中sortedFloatsArr_distance都是NSMutsbleArray

然后就会得到警报:

incompatible pointer types assigning to 'nsmutablearray ' from 'nsarray '

但是最终结果是正确的,警报是怎么回事?谢谢指点。

解决方案

sortedArrayUsingDescriptors方法需要参数是NSArray. 但是你传递了一个NSMutableArray
试试:

sortedFloats = [Arr_distance sortedArrayUsingDescriptors:                [NSArray arrayWithObject:sortDescriptor]];
时间: 2024-10-06 13:20:06

ios-得到警告:指针类型不兼容的相关文章

16种C语言编译警告(Warning)类型的解决方法_C 语言

当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息.警告信息可能意味着程序中隐含的大错误,也可能确实没有问题.对于警告的正确处理方式应该是:尽可能地消除之.对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题.只有那些确实无问题的警告才能放下不管. 说明: 由于编译的警告各种各样,根本不可以一一罗列出来,下面只是列举出比较典型的一些警告,还有一些警告,大家只要根据字面意思,就可以很快的查找出来,并解决之. 类型1:显示:warning: implicit declara

C/C++中数组和指针类型的关系

对于数组和多维数组的内容这里就不再讨论了,前面的教程有过说明,这里主要讲述的数组和指针类型的关系,通过对他们之间关系的了解可以更加深入的掌握数组和指针特性的知识! 一个整数类型数组如下进行定义: int a[]={1,2,3,4}; 如果简单写成: a;//数组的标识符名称 这将代表的是数组第一个元素的内存地址,a;就相当于&a[0],它的类型是数组元素类型的指针,在这个例子中它的类型就是int* 如果我们想访问第二个元素的地址我们可以写成如下的两种方式: &a[1]; a+1//注意这里

C# 指针学习笔记之指针类型

大学的时候学过C++.C,最近工作也不是很忙,就想起看看C#中的指针,看看.回忆一下啊,指针的用法,以下学习笔记摘自msdn:指针类型 在不安全的上下文中,类型可以是指针类型以及值类型或引用类型.指针类型声明具有下列形式之一: type* identifier; void* identifier; //allowed but not recommended 下列类型都可以是指针类型: sbyte.byte.short.ushort.int.uint.long.ulong.char.float.d

c语言-关于C语言结构体指针类型的强制转换(求大神详细解答)

问题描述 关于C语言结构体指针类型的强制转换(求大神详细解答) #include <iostream> #include <algorithm> using namespace std; typedef struct { string dna; int count; }DNA; DNA dna[101]; **int cmp(const void *a,const void *b) { DNA *aa = (DNA *)a; DNA *bb = (DNA *)b; return a

无法解决error C2109: 下标要求数组或指针类型

问题描述 无法解决error C2109: 下标要求数组或指针类型 最近在学习数据结构的图--以上是有问题的代码,还没有写完.但是这一段: 和这一段: 各位大神应该是看到了i或者j下面划得红线吧,问题就是出在这里.以下po出完整的代码段,但是还是没有写完. #include<iostream> using namespace std; #define MVNum 100 #define MaxInt 0 #define Int 1 /*int VerTexType; int ArcType;*

语言 指针类型-C语言中, 指针类型char*有什么意义。

问题描述 C语言中, 指针类型char*有什么意义. C语言中,void*与char*之类的指针类型相比,有什么特殊的用途? 解决方案 如果定义成 void * 时,就无法取指针中的数据,因为数据类型不明确. 想要取 void * 中的数据,需要转换成想要的类型指针,如 char * 或 int * . 一般 void * 做参数参数时使用,可以接受 char * 或 int * 等其它类型指针的传入.如果定义成 char * 等固定类型,则无法接收除 char * 外的其它类型指针. 解决方案

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h>   void main(void) {     int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };     for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节     {         printf("\n%p,%d", p, *p);    

程序问题-int* &amp;amp;amp;T是什么意思?是整型指针类型的引用吗?

问题描述 int* &T是什么意思?是整型指针类型的引用吗? Status InitTriplet(int* &T,Elemtype v1,Elemtype v2, Elemtype v3) { T = (int *)malloc(3 * sizeof(Elemtype)); if (!T) exit(OVERFLOW); T[0] = v1;T[1] = v2;T[2] = v3; return OK; } 解决方案 int类指针的引用.T是int指针的别名.行参的引用传递

类中的内存分配和指针类型强制转换问题

问题描述 类中的内存分配和指针类型强制转换问题 问题描述: template //element type class list { private: EleT data;//数据本身,即是需要的信息 list* prio;//the pointer of prior element list* next;//the pointer of next element list* last;//the last pointer of list int len;//the length of list