问题标签 [nsinvocation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
image - 将图像异步加载到 tableview 单元格中
在互联网上搜索了数周并且堆栈中也有很多帖子之后,我似乎找不到在我的项目中实现这一点的方法。
我的 Dropbox 帐户中有一个 plist。在名为“cellPic”的字典之一下的 plist 中的字符串之一。
我想在表格单元格上显示我在我的保管箱中拥有的商店的图片。
plist 已下载到我的文档路径:
到目前为止一切正常...
在此方法下的 TableViewController 中,我想为单元格实现异步图像加载。
我的目标是异步读取/下载图像,但我不知道它是如何进行的 - 我需要在我的文档路径上读取我的 plist 中包含图片完整 url 地址的字符串还是我需要下载图片从服务器到我的文档,然后将其读取到单元格中?
在我的情况下 - 单元格的位置正在改变 cau,它们按用户位置排序(离用户最近的商店位于表格顶部),这就是为什么我认为我需要从我的 plist 中读取它的原因。
这是我的图片网址之一:http
://dl.dropbox.com/u/4082823/AppsFiles/Black/ramat-hasharon.png
最好的方法是什么以及如何一次下载所有 png 图像(如果需要的话)?
我已经尝试使用本教程来完成它,但它根本没有成功。
http://www.switchonthecode.com/tutorials/loading-images-asynchronously-on-iphone-using-nsinvocationoperation
帮助将被appriciated!
谢谢!
objective-c - 调用块 iOS
我尝试调用一些块,但我遇到了 EXC_BAD_ACCESS。
关于为什么会发生这种情况的任何想法?
objective-c - 将 NSUndoManager 与 prepareWithInvocationTarget、手势和对象一起使用
我有一个绘图应用程序。我想实现撤消/重做。尽管我在存储撤消/重做的原始值和新值时遇到了困难。
使用手势我需要存储一些东西:变换、居中、属性对话框,我需要存储更多、颜色、字体、字体大小、轮廓、轮廓颜色、文本本身等。
我创建了一个NSMutableDictionary
用户可以在单个手势/属性弹出窗口中更改的属性。
我想使用Rob 的答案NSUndoManager
和旋转手势,尽管使用他的解决方案与 一起使用CGAffineTransform
,当作为参数发送时 prepareWithInvocationTarget
,它不是对象,只是将CGAffineTransform
结构的副本放在撤消/重做堆栈上。
虽然在使用prepareWithInvocationTarget
我NSMutableDictionary
传入的字典时(OriginalAttribs,newAttribs)不会保留。我不能将它们作为本地 iVar,因为它们会随着绘图对象上的每个动作而改变。
似乎我想retainArguments
用作其中的一部分,NSInvocation
但我真的不想保留它们。我需要他们的副本。
它的手势使这变得困难,因为我无法继续设置 OrigianlCenter, OriginalTransform,因为它在手势处于活动状态时会发生变化。
更新 我找到了这个链接,它似乎与我想做的类似。
我像这样设置我的 NSUndoManager:
然后我得到一个运行时错误:
undoAttributesWithOriginalAttributes:newAttributes:
是我为我的 NSInvocation 对象设置的选择器。根据这里的文档,它说它应该将它传递给自我(目标),而不是撤消管理器自我?
objective-c - iOS NSInvocation setArgument:atIndex:不适用于 ARM 构建上的 struct
我有一个奇怪的问题,即使用包含未对齐的双精度或任何 64 位类型的结构设置 NSInvocation 的参数(我在结构的开头用 char 偏移它)。问题是在设置参数后清除了一些字节。此问题出现在 ARM7 上,但不在 iOS 模拟器中。
我正在使用 LLVM 3.0 和 Xcode 4.2
这是我的代码和测试结果:
NSInvocation+Extension.h
NSInvocation+Extension.m
声明要调用的方法和数据结构
调用代码
ARM7 上 buf 的内容(字节 8、9、10 和 11 设置为零,这会弄乱双精度值)
41 00 00 00 00 00 00 00 29 8C 67 41 42 00 00 00 02 00 00 00 43 00 00 00
i386 模拟器上的 buf 内容(如预期)
41 00 00 00 00 00 00 C0 29 8C 67 41 42 00 00 00 02 00 00 00 43 00 00 00
ios - 如何使用将指向对象的指针作为参数的方法创建 NSInvocation 对象
我想使用一个将指向 NSError 对象的指针作为参数的方法创建一个 NSInvocation 对象。这方面的一个例子是方法 -
我明白我会像这样设置我的调用
对于 writeToFile:Options:Error:最后一个参数期望接收指针而不是对象。因此,执行以下操作不起作用 -
解决方案可能是创建指向指针的指针似乎是合乎逻辑的,但这会导致编译器警告。我不确定如何正确执行它并且不会产生内存管理问题。
objective-c - NSInvocation & NSError - __autoreleasing & memory crasher
在学习 NSInvocations 时,我对内存管理的理解似乎存在差距。
这是一个示例项目:
当然,我在这里所做的只是建立一个调用对象作为 NSString 类方法的属性
这是有道理的,尤其是在阅读了这篇博文之后,关于为什么我需要通过声明并将地址分配给 **errorPointer 来处理 NSError 对象。有点难以掌握的是这里发生的 __autoreleasing 和内存管理。
**errorPointer 变量不是对象,因此它没有保留计数。它只是存储指向 NSError 对象的内存地址的内存。我知道 stringWith... 方法将分配、初始化和自动释放 NSError 对象,并设置 *errorPointer = 分配的内存。正如您稍后将看到的,NSError 对象变得不可访问。这是...
- ...因为自动释放池已经耗尽?
- ...因为ARC填写了对stringWith ...的alloc + init的“释放”调用?
那么让我们来看看调用是如何“工作”的
这让我大开眼界(有点令人不安),因为我以为我知道在内存管理方面我到底在做什么!
为了解决我的崩溃,我能做的最好的事情就是从 init 方法中拉出 NSError *error 变量,并使其成为全局变量。这需要我在 **errorPointer 上将属性从 __autoreleasing 更改为 __strong。但是,很明显,这种修复并不理想,尤其是考虑到一个操作队列中可能会多次重用 NSInvocations。它也只是有点证实了我对 *error 正在被释放的怀疑。
作为最终的 WTF,我尝试使用 __bridge casts 玩了一下,但是 1. 我不确定这是否是我需要的,以及 2. 置换后我找不到一个有效的。
我希望有一些见解可以帮助我更好地理解为什么这一切都没有点击。
objective-c - iOS - 不能使用“超级”作为参考?
我正在尝试使用 anNSInvocation
从子类调用超类方法。涉及的代码相对简单,如下所示:
这对我来说似乎有点奇怪,因为我一直认为它super
遵循几乎相同的规则self
(即它可以被视为对相关对象的直接引用并分配给变量,用作返回值等) . 在实践中似乎并非如此。
无论如何,有什么简单的方法可以让我NSInvocation
以超类实现为目标(我不能self
用作目标,因为子类覆盖了超类方法),还是我需要寻找其他方法?
objective-c - 协助将 NSInvocation 代码转换为 ARC 兼容(已经是 Objective-C)
我从 Matt Gallagher 那里找到了一些非常棒的代码,用于使 Undo 与 NSInvocation 一起工作。尽管现在管理层希望我们对所有代码都使用 ARC,但我们现在正在将所有代码转换为 ARC。这最后一块就是剩下的了。马特,没有时间做转换,所以我希望我能在这里得到一些帮助。
任何援助将不胜感激!
谢谢!
NSInvocation(ForwardedConstruction).h
NSInvocation(ForwardedConstruction).m
objective-c - 是否可以将另一个类的方法设置为 NSInvocation 对象的选择器属性?
我在 ClassA 中有一个名为 Selector1 的方法,
在 ClassB 中,我想创建一个 NSInvocation 对象并将 Selector1 设置为对象的选择器。这可能吗?我不知道设置这个的正确方法。
我试图在 ClassB 中使用的代码是这样的:
ios - 有没有办法观察对象(iOS)上调用的每个消息调用?
每次向对象发送消息时,我只想获取选择器名称以及参数、发送者或 NSInvocation 实例。可能的?像 forwardInvocation: 之类的东西,但在每种情况下(每个方法调用)。