我想把我的CGPoint存储到NSMutable数组中,所以我有这样的方法:

[self.points addObject:CGPointMake(x, y)];

但我错了,上面说:

的参数1的类型不兼容

所以,我看看API,

- (void)addObject:(id)anObject

anObject要添加到末尾的对象

所以,我认为"CGPointMake"可以构成一个对象,但它不能被分配.会发生什么?

推荐答案

问题是CGPoint实际上只是一个C struct ,而不是一个对象:

struct CGPoint {
   CGFloat x;
   CGFloat y;
};
typedef struct CGPoint CGPoint;

如果您在iPhone上,可以使用NSValue UIKit additions将CGPoint转换为NSValue对象.

参见前面的答案,例如:How can I add CGPoint objects to an NSArray the easy way?

Objective-c相关问答推荐

如何限制 UITextField 中的特殊字符(点和下划线除外)?

当我们只能使用 NSObject 时,为什么还要使用 id?

如何获取 NSDictionary 中的第一个元素?

performSelector 的返回值:

Asihttprequest 61 错误

go 掉 UISearchBar 下的 1px 边框

当我从导航控制器推送时如何隐藏导航栏?

从我在 iPhone 上的应用程序调用官方 *Settings* 应用程序

避免NSArray 在被枚举时发生Mutations

Crashlytics iOS - 记录捕获的异常

如何隐藏/显示导航栏中的右键

如何在 iOS 上将图像旋转 90 度?

判断是否已实现可选协议方法

主队列上的 performSelectorOnMainThread: 和 dispatch_async() 有什么区别?

在 Objective-C 中_和touch之间的区别

检测 UITableView 滚动

协议和代表之间的区别?

发送通知到山狮通知中心

如何判断 WkWebView 是否在 Objective-C 中完成加载?

iOS中的活动生命周期相当于什么?