- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要将 a carbon 方法转换为 cocoa ,但我无法找到任何关于 carbon 方法 getPtrSize 真正作用的文档。从我正在翻译的代码来看,它似乎返回了图像的字节表示形式,但这与名称并不匹配。有人可以给我一个关于这种方法的很好的解释,或者将我链接到一些描述它的文档。我正在翻译的代码是在一个名为 MCL 的通用 lisp 实现中,它有一个碳桥(我正在翻译成 CCL,这是一个带有 Cocoa 桥的通用 lisp 实现)。这是 MCL 代码(#_before 方法调用意味着它是一个 carbon 方法):
(defmethod COPY-CONTENT-INTO ((Source inflatable-icon)
(Destination inflatable-icon))
;; check for size compatibility to avoid disaster
(unless (and (= (rows Source) (rows Destination))
(= (columns Source) (columns Destination))
(= (#_getPtrSize (image Source))
(#_getPtrSize (image Destination))))
(error "cannot copy content of source into destination
inflatable icon: incompatible sizes"))
;; given that they are the same size only copy content
(setf (is-upright Destination) (is-upright Source))
(setf (height Destination) (height Source))
(setf (dz Destination) (dz Source))
(setf (surfaces Destination) (surfaces Source))
(setf (distance Destination) (distance Source))
;; arrays
(noise-map Source) ;; accessor makes array if needed
(noise-map Destination) ;; ;; accessor makes array if needed
(dotimes (Row (rows Source))
(dotimes (Column (columns Source))
(setf (aref (noise-map Destination) Row Column)
(aref (noise-map Source) Row Column))
(setf (aref (altitudes Destination) Row Column)
(aref (altitudes Source) Row Column))))
(setf (connectors Destination)
(mapcar #'copy-instance (connectors Source)))
(setf (visible-alpha-threshold Destination)
(visible-alpha-threshold Source))
;; copy Image: slow byte copy
(dotimes (I (#_getPtrSize (image Source)))
(%put-byte (image Destination) (%get-byte (image Source) i) i))
;; flat texture optimization:
;; do not copy texture-id
;; -> destination should get its own texture id from OpenGL
(setf (is-flat Destination) (is-flat Source))
;; do not compile flat textures: the display list overhead
;; slows things down by about 2x
(setf (auto-compile Destination) (not (is-flat Source)))
;; to make change visible we have to reset the compiled flag
(setf (is-compiled Destination) nil))
最佳答案
GetPtrSize
是来自 Memory Manager 的函数.当您使用 NewPtr
(另一个内存管理器函数)分配内存时,内存管理器会跟踪您请求的内存量,以便您可以使用 GetPtrSize
检索该数字.
NewPtr
的现代替代品是 malloc
,它不提供此类功能。有一个 malloc_size
函数,但它返回的数字可能会四舍五入到某个增量,因此它可能大于您最初要求的数字。您可以看到那(至少在概念上)有多糟糕。
GetPtrSize
的唯一准确替代方法就是自己跟踪缓冲区的大小。
或者,您可以用 NSMutableData 对象替换这些缓冲区。一个 NSMutableData 封装了一个缓冲区及其大小,使它们很容易保持在一起。
关于Cocoa 相当于 Carbon 方法 getPtrSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2403400/
我正在尝试避免放置 use Carbon\Carbon;在我使用 Carbon 的每个 php 文件中。有没有办法在一行中到处使用 Carbon\Carbon? require 'vendor/aut
Laravel 5.5 在我的 app.php 文件中,我定义了一个别名 'aliases' => [ ... 'Carbon' => Carbon\Carbon::class, ], 但是当
Laravel 5.5 在我的 app.php 文件中,我定义了一个别名 'aliases' => [ ... 'Carbon' => Carbon\Carbon::class, ], 但是当
Carbon 中的Array 和Slice 有什么区别?我找到一个document来自官方 repo 。但是,目前尚未完成。 以下是来自 Carbon official repo 的示例代码. //
我得到一个包含 [80] => Array ( [date] => Carbon\Carbon Object
我已经搜索过了,我确实找到了一些讨论这个问题的主题,但是我觉得没有一个是我想要的,所以我希望在这里得到更好的建议。 我想获取用户上次更新时间的时间戳。 $user->updated_at 如果我运行它
我最近向我的 Laravel 4 网站添加了一个包,现在任何使用 Eloquent(或至少 Eloquent 并带有任何日期/时间引用)的东西都显示 500 错误,指出: Class 'Carbon\
我从数据库中检索日期并可以选择对它们进行预处理(通过 Laravel 框架 (v5.2))。日期或时间可以采用任何特定格式,但在本例中,我们假设 Y-m-d . 我希望能够在 View 中以 Carb
所以目前我撤回一个日期并将其转换为 carbon 中的可读格式: Letter Sent: @if (is_null($Client->letter_posted)) @else {{
我想使用这个 Carbon 函数:Carbon::now()->subDays(5)->diffForHumans() 我需要创建正确的整数。 我正在加载一个带有日期时间的字符串,我想在 Larave
我一直在从事 Laravel 项目。当我运行 composer 命令时,我总是收到警告, Carbon 1 is deprecated, see how to migrate to Carbon 2.
我最近运行 sudo composer update 现在在我的一个页面上,我不断收到 我用过 $now = Carbon\Carbon::now('America/New_York'); 在我的 H
在 Laravel Artisan Tinker 中运行以下命令时: $article = new App\Article; $article->published_at = Carbon\Carbo
我是 Objective-C 的新手,我正在尝试使用来自 TextInputSources 的方法所以我试过了 #import 和 #import 没有这些作品。有什么我想念的吗?我正在使用 Xc
我正在将 openfire(3.9.3) 与 strope.js 一起使用,我想实现消息复写功能以支持多设备登录。 我已关注http://xmpp.org/extensions/xep-0280.ht
我正在尝试将我制作的项目部署到 Heroku,但是当我尝试使用以下内容推送项目时: git push heroku master 它最终给了我一个看起来像这样的错误: appscript_3x/ext
我在尝试安装 libvlc 时遇到上述错误: C:\>easy_install vlc Searching for vlc Best match: vlc 0.0.1 Adding vlc 0.0.1
我已经创建了一个Next.js应用程序,其中包含:。我已经使用以下选项设置了包:。我已经使用以下代码修改了app/lobals.scss:。我有这个主页:。这是我的SigIn组件:。当我运行npm r
我正在使用 Laravel 5.8。 我在文件 /var/www/html/admin/vendor/nesbot/carbon/src/Carbon/Traits/Units.php 行中遇到异常
我正在尝试运行一个 hello world SWT 应用程序: public static void main(String args[]) throws IOException{ Displ
我是一名优秀的程序员,十分优秀!