在 Objective-C 中,我可以在 c 浮点数组上声明 @property 吗?

2024-04-15

thing.h

@interface Thing : NSObject 
{
     float stuff[30];
}

@property float stuff;
@end

thing.m

@implementation Thing
@synthesize stuff;
@end

I get 错误:属性“stuff”的类型与 ivar“stuff”的类型不匹配

我不想使用 NSArray,因为我必须将浮点数转换为 NSNumber(对吗?),这做数学很痛苦。

Update:我注意到类似的答案有猜测和试验答案。虽然我很欣赏非 Objective-C 人员的尝试,但我希望确定的回答是否可以。


好的,我已经编译了以下代码,它按预期工作。

FloatHolder.h

@interface FloatHolder : NSObject {
    int _count;
    float* _values;
}

- (id) initWithCount:(int)count;

// possibly look into this for making access shorter
// http://vgable.com/blog/2009/05/15/concise-nsdictionary-and-nsarray-lookup/
- (float)getValueAtIndex:(int)index;
- (void)setValue:(float)value atIndex:(int)index;

@property(readonly) int count;
@property(readonly) float* values; // allows direct unsafe access to the values

@end

FloatHolder.m

#import "FloatHolder.h"


@implementation FloatHolder

@synthesize count = _count;
@synthesize values = _values;

- (id) initWithCount:(int)count {
    self = [super init];
    if (self != nil) {
        _count = count;
        _values = malloc(sizeof(float)*count);
    }
    return self;
}

- (void) dealloc
{
    free(_values);

    [super dealloc];
}

- (float)getValueAtIndex:(int)index {
    if(index<0 || index>=_count) {
        @throw [NSException exceptionWithName: @"Exception" reason: @"Index out of bounds" userInfo: nil];
    }

    return _values[index];
}

- (void)setValue:(float)value atIndex:(int)index {
    if(index<0 || index>=_count) {
        @throw [NSException exceptionWithName: @"Exception" reason: @"Index out of bounds" userInfo: nil];
    }

    _values[index] = value;
}

@end

然后在您的其他应用程序代码中您可以执行如下操作:

** FloatTestCode.h **

#import <Cocoa/Cocoa.h>
#import "FloatHolder.h"

@interface FloatTestCode : NSObject {
    FloatHolder* holder;
}

- (void) doIt:(id)sender;

@end

** FloatTestCode.m **

#import "FloatTestCode.h"


@implementation FloatTestCode

- (id) init
{
    self = [super init];
    if (self != nil) {
        holder = [[[FloatHolder alloc] initWithCount: 10] retain];
    }
    return self;
}

- (void) dealloc
{
    [holder release];

    [super dealloc];
}

- (void) doIt:(id)sender {
    holder.values[1] = 10;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Objective-C 中,我可以在 c 浮点数组上声明 @property 吗? 的相关文章

  • 返回一个dispatch_async获取的变量[重复]

    这个问题在这里已经有答案了 基本上 一个方法需要返回一个在dispatch async中获取的NSDictionary 这是我尝试过的 NSDictionary fetchNSDictionary dispatch queue t Queu
  • 如何从 UILabel 创建图像?

    我目前正在 iPhone 上开发一个简单的类似 Photoshop 的应用程序 当我想要展平图层时 标签位于良好的位置 但字体大小不佳 这是我要展平的代码 UIGraphicsBeginImageContext CGSizeMake wid
  • 比较 Objective C 中的 NSNumber

    我是 Objective C 的初学者 对这种情况有点困惑 我有以下代码 if number1 lt number2 NSLog THE FOLLOWING NUMBER NSLog number1 NSLog IS LESS THAN N
  • 检查系统时间是自动还是用户设置

    我需要在当前的项目中设置用户证明时间 我围绕这个问题发现了很多不同的问题 但似乎没有一个问题有我正在寻找的答案 这些是我到目前为止看过的问题 XCODE 如何从设备获取 验证准确的时间戳 https stackoverflow com qu
  • NSOperation 中委托的使用

    我正在尝试利用CLLocationManager in an NSOperation 作为其中的一部分 我需要能够startUpdatingLocation然后等到收到 CLLocation 后才完成操作 目前我已经完成了以下操作 但是委托
  • AppDelegate 的变量用作全局变量不起作用

    我想使用我的 AppDelegate 来存储任何其他类都可以访问的对象 我已经像这样声明了这个 AppDelegate interface MyAppDelegate UIResponder
  • 如何将 UIImageView 裁剪为自定义形状

    用户是否可以在该位周围画一条虚线 圆圈 UIImageView他们希望裁剪到 然后为UIImageView调整大小到这些点 这有点像 Photoshop 中的套索 选取框效果 更新 从 iOS 8 x 开始 UIImageView 提供了m
  • UISlider不会自动重绘

    我的应用程序上有一个 UISlider 有时我不仅需要更新它的值 还需要更新它的minimumValue 值已更改 但如果我调用 setValue 方法或为滑块分配新值 它会具有新值 但滑块不会将自身重新绘制到该新值应有的位置 我怎样才能重
  • 使用自动布局、IB 和字体大小时表头视图高度错误

    我正在尝试为我的 uiTableView 创建一个标题视图 不是节标题 我已经有了 我已经在界面生成器中设置了一个 XIB 所有的连接都已连接好并且运行良好 除了桌子没有给它足够的空间 我的问题是表格顶部与表格标题有一点重叠 我的 XIB
  • 如何编辑应用程序包中的文件?

    在我的应用程序中 我从存储在捆绑资源中的 CSV 文件加载数据 但是 我希望能够在用户点击 更新 按钮时以编程方式更新此文件 有没有办法以编程方式更改应用程序包中的资源 这是我用来访问该文件的代码 NSString path NSBundl
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • 在成为FirstResponder或resignFirstResponder的情况下将对象保持在键盘顶部?

    我目前在键盘顶部有一个 UITextField 当您点击它时 它应该粘在键盘顶部并平滑地向上移动 我不知道键盘的具体时长和动画类型 所以确实很坎坷 这是我所拥有的 theTextView resignFirstResponder UIVie
  • 为什么 Objective-C 方法名称的最后一部分必须带有参数(当有多个部分时)?

    在 Objective C 中 您不能声明最后一个组件不带参数的方法名称 例如 以下内容是非法的 void take id theMoney andRun void take id yourMedicine andDontComplain
  • 如何确定 NSTimeInterval 是否发生在任意 NSDate 期间?

    我有一个 NSTimeInterval 我想知道该时间戳是否位于日期的开始和结束之间 基本上我需要能够做类似的事情 NSDate today NSDate date NSTimeInterval myInterval someInterva
  • 如何重新定位或移动 Google Maps SDK 上的当前位置按钮?

    如何将 Objective C 中的当前位置按钮移至我的偏好 现在 我已启用它 但底角有东西挡住了它 Thanks 您可以使用 padding 将按钮向上移动 self mapView padding UIEdgeInsets top 0
  • 如何用图片替换UITableView?

    我有一个 UITableView 默认为空白 直到用户编辑并向其添加数据 我想显示一张带有说明的图像 直到用户编辑它为止 图片的大小非常适合导航栏和标签栏之间 有没有办法以编程方式执行此操作 您可以使用removeFromSuperview
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选

随机推荐

  • Java OpenCV - 从 knnMatch 中提取良好的匹配

    我正在尝试实现一个非常简单的程序来查找两个图像之间的相似之处 我正在使用 ORB 特征检测器和图像描述符来完成此任务 并且我正在使用以下方法识别匹配knnMatch FeatureDetector detector FeatureDetec
  • PostgreSQL 排序时除以零

    我需要在 postgres 中执行这个查询 但我无法摆脱这个错误 ERROR division by zero SQL state 22012 这是查询 select id rates sum rates count from tbl no
  • 悬停时隐藏 div 的子元素

    有没有办法让这项工作发挥作用 我想将鼠标悬停在外部div并隐藏子元素而不使用 javascript 这样的事情可能吗 fullwrap nth child 1 hover display none 要隐藏子元素 您需要这样的结构 paren
  • Mac 上出现“SSL: CERTIFICATE_VERIFY_FAILED”错误

    我本来想解决 SSL CERTIFICATE VERIFY FAILED 问题 因为我使用 mac 和 python 3 很多人说我应该运行 Applications Python 3 6 Install Certificates comm
  • 使用 PHP 格式化 API JSON 响应

    我有一个 api 我想使用 php 解析其中的数据 这就是回应 success true data medicineId 12 medicineName Abacavir medicineId 10 medicineName Alclome
  • python setuptools setup.cfg:在构建目录中包含主包和子包

    我想使用以下命令为我的 python 软件创建一个 pip 包安装程序 cfg https setuptools pypa io en latest userguide declarative config html文件 我的程序目前的结构
  • 如何在Delphi 10.2中使用ToolsAPI获取当前项目的版本号

    在 Delphi 2007 中 我可以使用以下 ToolsAPI 调用轻松获取当前项目的版本信息 procedure Test var ProjectOptions IOTAProjectOptions Project IOTAProjec
  • 我无法在 Netbeans 7.0 上创建 Rails 应用程序。挂在25%处

    我的开发环境 是 Win7旗舰版 红宝石 1 9 2p180 铁轨3 0 9 宝石1 8 5 sqlite3 和 mysql2 gems 已安装 我的IDE是netbeans 7 0 用于 netbeans 7 0 的 ruby 插件已安装
  • 在移动 Safari 中检测 iOS5(首选 JavaScript)

    iOS5 中引入的新固定定位损坏了我的网络应用程序 我需要一种方法来检测 iOS5 用户 如何检测iOS5 浏览器代理字符串是什么 首选 JavaScript 谢谢 从SO问题来看 iOS 5 用户代理字符串是什么 https stacko
  • 将 int 转换为 size_t

    当我传递一个时 我想知道 clang 编译器的以下警告integer to an std initializer list lt size t gt non constant expression cannot be narrowed fr
  • 使用boilerpipe提取非英文文章

    我正在尝试使用锅炉管 http code google com p boilerpipe java 库 用于从一组网站中提取新闻文章 它非常适合英文文本 但对于带有特殊字符的文本 例如带有重音符号的单词 hist ria 无法正确提取这些特
  • Firebase 按顺序获取数据

    我正在使用 Firebase 直到最近才按字母顺序获取数据时没有遇到任何问题 我从来没有使用过查询 我总是只使用数据快照并对其进行一一排序 最近 数据并不总是按字母顺序排列snapVal 如何才能获得按字母顺序排序的数据 snapVal 就
  • commonModalDialogClose(SP.UI.DialogResult.OK, someValue) 抛出错误

    在 SharePoint 2010 中 我有一个可视化 Web 部件 它使用SP UI ModalDialog showModalDialog 该对话框显示正常 但是当我尝试使用关闭对话框时 SP UI ModalDialog common
  • USBInterfaceOpen总是报kIOReturnExclusiveAccess错误

    最近我遇到了这个问题 很头疼 我已经在这个问题上花了一个星期了 但仍然失败 希望您能帮我把这块石头踢开 非常感谢 我的问题 我们公司为iPhone生产USB存储设备 实际上这个存储设备中有一个SDCard 现在 我们想要开发一个 Mac 应
  • li 菜单需要“selected”类

    当用户单击菜单选项卡时 我希望它保持选中状态 并带有白色按钮 这是我的尝试 但它不起作用 如果您单击主页按钮 它不会保持白色 html ul li a href span HOME span a li li a href en us abo
  • 带 redux 的进度条

    我的 React Redux 应用程序中有一个后台上传过程 更新非常频繁 我的减速器看起来像这样 export default function progressReducer state initialState action switc
  • struct - 使用 qsort 对 C 字符串进行排序

    我正在对一堆 IP 进行排序 但由于某种原因 它们的顺序错误 我不太确定问题出在哪里 66 249 71 3 190 148 164 245 207 46 232 182 190 148 164 245 190 148 164 245 20
  • Google 应用已发布到内部测试轨道,但无法找到/下载

    我已成功完成 APK 到内部测试轨道的发布过程 但是 当我尝试使用下面屏幕截图中的 在 GOOGLE PLAY 上查看 链接查看 Google Play 商店上下载的应用程序时 it opens a new window with the
  • 超链接在 Android UC 浏览器中不起作用

    我被一个问题困扰 我正在尝试通过放置在我的网站中的超链接打开 Android 应用程序 下面是链接 href intent Intent action com example myapp category android intent ca
  • 在 Objective-C 中,我可以在 c 浮点数组上声明 @property 吗?

    thing h interface Thing NSObject float stuff 30 property float stuff end thing m implementation Thing synthesize stuff e