我是Git分支复杂的新手.我总是在一个分支上工作并提交更改,然后定期推送到我的远程源.
在最近的某个地方,我重置了一些文件以使它们脱离提交暂存,后来又做了一个rebase -i
去除几个最近的本地提交.现在我处于一种我不太了解的状态.
在我的工作区域,git log
显示我所期待的 - 我在正确的火车上,我不想要的提交,以及那些新的,等等.
但是我只是推送到远程存储库,并且有什么不同 - 我在rebase中杀死的一些提交被推送,而本地提交的新提交不存在.
我认为"master/origin"与HEAD分离,但我不是100%清楚这意味着什么,如何使用命令行工具将其可视化,以及如何修复它.
我有一个托管UINavigationController的UIPopoverController,它包含一个小的视图控制器层次结构.
我按照文档和每个视图控制器,我设置了视图的popover-context大小,如下所示:
[self setContentSizeForViewInPopover:CGSizeMake(320, 500)];
Run Code Online (Sandbox Code Playgroud)
(每个控制器的大小不同)
当我在层次结构中向前导航时,这可以正常工作 - 弹出窗口自动动画大小更改以对应于推送的控制器.
但是,当我通过导航栏的"后退"按钮通过视图堆栈"返回"时,弹出窗口不会改变大小 - 它仍然与最深的视图一样大.这似乎对我不利; 我希望popover能够尊重弹出视图堆栈时设置的大小.
我错过了什么吗?
谢谢.
uiviewcontroller uinavigationcontroller uipopovercontroller ios
我知道在我个人熟悉的架构(x86,6502等)中,堆栈通常会向下增长(即,每个推入堆栈的项目都会导致SP递减,而不是递增的SP).
我想知道这个的历史原因.我知道在一个统一的地址空间中,在数据段的另一端(例如)开始堆栈很方便,所以如果双方在中间发生碰撞,那么只会出现问题.但是为什么堆栈传统上是最重要的?特别是考虑到这与"概念"模型的对立面如何?
(请注意,在6502架构中,堆栈也向下增长,即使它被限制在一个256字节的页面上,这个方向选择似乎是任意的.)
我有一个UIScrollView(不是表视图,只是一个自定义的东西),当用户采取某些动作时,我想杀死视图内的任何滚动(拖动或减速).我试过这样做:
[scrollView scrollRectToVisible:CGRectInset([scrollView bounds], 10, 10) animated:NO];
Run Code Online (Sandbox Code Playgroud)
根据这个理论,给定一个已经知道可见的矩形,滚动就会停在它的位置,但事实证明这没有任何效果 - 显然滚动视图看到给定的矩形在边界和需要没有动作.我可以让滚动停止,如果我给出一个肯定在当前可见边界之外的矩形,但是在视图的contentSize内.这似乎停止了预期的视图......但也导致它跳转到其他位置.我可能会在边缘做一些游戏以使其合理地工作,但有没有人知道一种干净的方法来停止滚动视图正在做它的事情?
谢谢.
有没有办法,在Javascript的帮助下,列出与当前页面相关的所有cookie?也就是说,如果我不知道cookie的名称,但想要检索它们包含的所有信息.
我想弄清楚我是否可以构建一个隐藏其所有内部对象和函数等的静态库,除了我要导出的接口.我正在尝试使用Xcode(gcc 4.2).
我__attribute__((visibility("hidden")))
根据这个文档在一些C++类上使用了该属性.我还将小辅助C函数定义为文件本地(静态)等.
但是,当我运行strings
生成的.a库文件时,即使在Release配置中编译,我仍然会看到表面上隐藏的类的名称,以及它们的方法名称,甚至是那里散布的文件本地函数的名称同样.
我已经添加了-fvisibility=hidden
甚至-fno-rtti
是gcc标志.虽然这减少了一些字符串,但类名,方法名和静态函数名仍然以简单或错误但可读的形式存在.
是否有一种可靠的方法让编译器构建这些东西而不必将所有内部内容的字符串名称发送到二进制文件中?没有必要为任何外部客户端链接.
(澄清一下:我问的是内部命名的混淆,以及文字导出绑定的需要.我很遗憾所有内部工作都可以通过strings
命令看到,无论这些符号是否正式导出.)
谢谢.
我想在UITableView的每一行的左侧放置一个UIImage.这是非常标准的,并且由UIKit直接支持.但是放入(大)图像会导致各种各样的困难,所以我想应该自己正确地扩展这个东西.但是没有一个文档使用标准的开箱即用视图给出了这个图像的默认大小 - 我很惊讶.
SO上的其他人表示44是一行的默认高度(UITableViewCell的默认高度是多少?)44x44是"默认"图像大小吗?
谢谢!
NSURL对象表示可能包含远程服务器上资源位置的URL,磁盘上本地文件的路径,甚至是任意一段编码数据.
我有一大堆内存数据,我想把它交给一个想要通过一个资源加载资源的库NSURL
.当然,我可以先将它写入NSData
临时文件,然后创建一个file://
NSURL
,但我更喜欢让URL直接指向我已经存在于内存中的缓冲区.
上面引用的文档似乎表明这是可能的,但我找不到任何如何实现它的暗示.我错过了什么吗?
我有一些二维几何.我想在我的几何体周围采用一些边界矩形,然后在平面上的其他地方渲染一个较小的版本.这里或多或少是我必须进行缩放和翻译的代码:
// source and dest are arbitrary rectangles.
float scaleX = dest.width / source.width;
float scaleY = dest.height / source.height;
float translateX = dest.x - source.x;
float translateY = dest.y - source.y;
glScalef(scaleX, scaleY, 0.0);
glTranslatef(translateX, translateY, 0.0);
// Draw geometry in question with its normal verts.
Run Code Online (Sandbox Code Playgroud)
当dest原点为0时,这与给定维度的预期完全一样.但是,如果x的原点非零,则结果仍然正确缩放但看起来像(?)它被转换为该轴上接近零的值无论如何 - 事实证明它与dest.x为零并不完全相同.
有人能指出一些我不知道的明显事物吗?
谢谢!
最终更新根据下面的Bahbar和Marcus的答案,我做了一些实验并解决了这个问题.亚当鲍文的评论是提示.我错过了两个重要的事实:
回想起来,第一种是显而易见的.但对于后者,对于像我这样的其他优秀程序员/坏数学家:原来我的直觉是在红皮书所谓的"大型,固定坐标系统"中运行,其中有一个绝对平面,你的几何形状在四处移动那架飞机使用变形.这是可以的,但考虑到将多个变换堆叠成一个矩阵背后的数学性质,它与事物真正起作用的方式相反(请参阅下面的答案或红皮书了解更多信息).基本上,变换以"相反的顺序""应用"它们在代码中的出现方式.这是最终的工作解决方案:
// source and dest are arbitrary rectangles.
float scaleX = dest.width / source.width;
float scaleY = dest.height / source.height;
Point sourceCenter …
Run Code Online (Sandbox Code Playgroud) 在NS(Mutable)词典中用作键的所有对象必须支持NSCopying协议,并且这些对象在字典中使用时会被复制.
我经常想要使用较重的物体作为键,只需将一个物体映射到另一个物体.当我这样做时,我真正的意思是:
[dictionary setObject:someObject forKey:[NSValue valueWithPointer:keyObject]];
Run Code Online (Sandbox Code Playgroud)
("当我回来再次交给你这个相同的关键对象实例时,给我相同的值.")
...这正是我最终做的有时候绕过这个设计.(是的,我知道桌面Cocoa中的NSMapTable;但是iPhone不支持这个.)
但我真正得到的是为什么首先复制密钥是必要的或可取的.它是如何购买实现或调用者的?
cocoa ×2
ios ×2
iphone ×2
architecture ×1
cookies ×1
gcc ×1
git ×1
graphics ×1
history ×1
javascript ×1
nsdata ×1
nsdictionary ×1
nsurl ×1
obfuscation ×1
opengl ×1
stack ×1
symbols ×1
transform ×1
uiimage ×1
uiscrollview ×1
uitableview ×1
xcode ×1