我想添加一个标题视图,UIWebView类似于MobileSafari中的地址/搜索栏和Sophia Teutschler的优秀Articles.app.更准确地说,我想在UIWebView上创建一个"拉动修复方向"视图,就像在文章中一样.文章确实使用UIWebView,所以它似乎是可能的.有没有办法做到这一点,而不必嵌入UIWebView到UIScrollView和更新其大小所有的时间,如在这篇文章?显然,我确实需要滚动事件来使"拉动修复方向"相应地表现出来.
假设我在C++程序中有以下代码:
Object a = Object(someParameters);
new (&a) Object(someOtherParameters);
Run Code Online (Sandbox Code Playgroud)
我的假设是它取代了awith 的内容Object(someOtherParameters),避免了可能的operator=声明Object.它是否正确?
我希望在当前方法通过并且UI已更新之后执行一个方法.为此,我现在正在使用[object performSelector:@selector(someSelector) withObject:someObject afterDelay:0.0].根据Apple的文档,这会创建一个NSTimer,然后触发并将选择器附加到当前的NSRunLoop.但我不认为这很优雅.有没有一种简单的方法可以直接将选择器排入当前的运行循环,而不会让Cocoa创建一个Timer等?
会performSelectorOnMainThread:withObject:waitUntilDone:(如果我在主线程),或者performSelector:onThread:withObject:waitUntilDone:用waitUntilDone:NO做我想做的开销更少?
欢呼并提前谢谢
MrMage
我注意到strip -S -x在我的应用程序'Frameworks'文件夹中的二进制文件上运行(删除所有调试和所有本地符号)使它们缩小了约25%,即使我在构建设置中启用了调试符号的剥离.
另请注意,这使得Swift支持库也变得更小,并且看起来没有用于去除它们的构建设置.另外,我甚至不能100%确定我的"剥离调试符号"设置是否正确(即实际上导致调试符号被剥离),因为它nm --debug-syms仍然显示了大量符号,并且strip -S(删除调试符号表)仍然使它们变小.我的条带设置似乎是您在Internet上找到的推荐设置:
但运行是否有任何不良副作用strip -S -x,例如以后无法表示堆栈跟踪?
此外,如何在构建过程中自动执行此剥离,同时保持最终代码签名不变?似乎添加-Xlinker -x -Xlinker -S到我的"其他链接器标志"将此过程应用于当前项目的二进制文件(包括框架),但不应用于我的依赖项目中的框架(例如CocoaPods).这是特别相关的,因为相应地修改我包含的CocoaPods项目的构建设置并不容易.如上所述,它也与Swift支持库dylibs相关,它们也没有这样的链接器选项,但仍然受益于这种剥离.
Apple的Accessibility Inspector工具显示与当前检查的UI元素对应的Objective-C类.请参NSButtonCell见此屏幕截图的最底部:
但是,如何在我自己的代码中提取此信息?Apple七年之久的UIElementInspector示例代码中的辅助功能方法不会显示元素的类名.
对Accessibility Inspector进行反向工程,暗示可以通过AXClassName属性获取Objective-C类名,但该属性对我来说总是零.
我已将iPhone的Tock声音添加到我自己的自定义键盘中,如下所示:
NSString *path = [[NSBundle bundleWithIdentifier:@"com.apple.UIKit"] pathForResource:@"Tock" ofType:@"aiff"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID);
AudioServicesPlaySystemSound(soundID);
// we don't dispose of the sound to keep the sound in the cache for the next time
//AudioServicesDisposeSystemSoundID(soundID);
Run Code Online (Sandbox Code Playgroud)
然而,在iPhone OS 3.1中,键盘Tock声音已被低沉,例如比其他声音更安静,而不是3.0.我的方法的声音仍然很响,并且音量最大.我怎样才能获得与iPhone默认键盘相同的音量?
顺便说一句,Twitterrific中的Tock声音适当地低沉.
干杯
MrMage
我需要在Swift中编写一些许可证检查代码。我知道Swift首先不是那种代码的最佳选择,因为它很难混淆。但是,如果需要知道应用程序是否已注册的代码是用Swift编写的,那还是比将许可证检查代码放在可以互换的单独框架中更好。
为了使攻击代码更加困难,我试图通过至少删除与代码相关的符号来使代码模糊。
为此,我有一些具有内部可见性的内联方法,如下所示:
@inline(__always) static func checkLicense() { /* license checking code */ }
Run Code Online (Sandbox Code Playgroud)
鉴于应始终内联该方法,因此无需在二进制文件的符号表中包括该方法的名称。(我知道inline注释通常仅是编译器的提示,但我有理由相信它们在这种情况下确实有效。)
与此nm MyApp.app/Contents/MacOS/MyApp相符,不包含对的引用checkLicense。但是,的输出strings MyApp.app/Contents/MacOS/MyApp仍然包含对checkLicense,而且恐怕攻击者可能会使用该信息来更容易地攻击许可证检查代码。
这是我的问题:
nm吗?)吗?我目前正在使用以下构建选项:
我有一个CGPath我想绘制的坐标系.这样做涉及将旧坐标系缩放到Context的坐标系上.为了这个目的,我使用CGContextConcatCTM()它确实转换所有点.但是,由于它是缩放操作,水平/垂直线宽变为.例如,在x方向上为10,但在y方向上为1,将导致垂直线的厚度是水平线的10倍.有没有办法保持翻译矩阵的易用性(例如CGAffineTransform),但不能同时缩放线宽,例如像CGPathApplyAffineTransformToPoints?
干杯
MrMage
我遇到了一个问题,我无法通过TestFlight安装我的应用程序的Ad Hoc版本.应用程序下载,但在安装步骤中显示"无法安装YourApp",控制台上显示以下消息:
Sep 17 16:08:24 unknown installd[4767] <Error>: 00381000 verify_signer_identity: Could not copy validate signature: -402620393
Sep 17 16:08:24 unknown installd[4767] <Error>: 00381000 preflight_application_install: Could not verify executable at /var/tmp/install_staging.2wYy1J/foo_extracted/Payload/PocketCASbeta.app
Sep 17 16:08:24 unknown com.apple.itunesstored[4764] <Notice>: MobileInstallationInstall: failed with -1
Sep 17 16:08:24 unknown installd[4767] <Error>: 00381000 install_application: Could not preflight application install
Sep 17 16:08:24 unknown installd[4767] <Error>: 00381000 handle_install: API failed
Sep 17 16:08:24 unknown installd[4767] <Error>: 00381000 send_message: failed to send mach message of 71 bytes: 10000003 …Run Code Online (Sandbox Code Playgroud) 我想显示一个NSPopover跟踪用户鼠标光标的信息.
为此,我使用an NSTrackingArea来positioningRect在mouseMoved事件触发时更新popover .
但是,这有两个缺点:
mouseExited会调用跟踪区域的方法,这会导致弹出窗口"吸收"鼠标移动事件,从而mouseMoved不再触发跟踪区域的事件.如何避免弹出窗口吸收鼠标事件,或者至少保持转发这些事件?这个问题非常类似于围绕这个NSTrackingArea怪癖的任何方式?,由于我正在使用的区别NSPopover,所以我没有什么可以继续ignoresMouseEvents下去.
objective-c ×4
iphone ×3
appkit ×2
cocoa ×2
macos ×2
audio ×1
c++ ×1
cgcontext ×1
cgpath ×1
cocoa-touch ×1
code-signing ×1
core-audio ×1
default.png ×1
dylib ×1
frameworks ×1
ios ×1
keyboard ×1
linker ×1
llvm ×1
new-operator ×1
nspopover ×1
nswindow ×1
operators ×1
runloop ×1
strip ×1
stroke ×1
swift ×1
testflight ×1
uiscrollview ×1
uiwebview ×1
xcode ×1