我正在尝试通过userInfo传递数据以进行NSTimer调用.做这个的最好方式是什么?我正在尝试使用NSDictionary,当我有Objective-C对象时,这很简单,但其他数据呢?我想做这样的事情,它不能正常工作:
- (void)play:(SystemSoundID)sound target:(id)target callbackSelector:(SEL)selector
{
NSLog(@"pause ipod");
[iPodController pause];
theSound = sound;
NSMutableDictionary *cb = [[NSMutableDictionary alloc] init];
[cb setObject:(id)&sound forKey:@"sound"];
[cb setObject:target forKey:@"target"];
[cb setObject:(id)&selector forKey:@"selector"];
[NSTimer scheduledTimerWithTimeInterval:0
target:self
selector:@selector(notifyPause1:)
userInfo:(id)cb
repeats:NO];
}
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用UIWebView作为嵌入式浏览器.我遇到的问题是跟踪应在URL栏中显示的URL.
在进行Google搜索时,结果页面通常会生成以下链接:
当用户单击此链接时,UIWebView首先报告此链接,然后报告重定向的链接shouldStartLoadWithRequest:navigationType:.
我如何判断这是一个重定向,而不是为页面上的图像或其他元素加载一些补充网站?目前我的网址栏显示的是上述示例中Google的长链接,而不是更新到维基百科网址.
我用自制软件将节点更新到7.9.0.现在每当我用npm做任何事情时,我都会收到以下错误:
$ node -v
v7.9.0
$ npm -v
module.js:472
throw err;
^
Error: Cannot find module '../lib/utils/unsupported.js'
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
Run Code Online (Sandbox Code Playgroud)
我尝试卸载并重新安装节点,没有任何更改.我可以尝试从中恢复什么?
我有一个UILabel,我已经在一个以视图为中心的故事板中.它有一些初始文本"点击登录".
我在登录后将标签的值更改为用户名.一旦我这样做,标签就不再居中,因为UILabel没有改变大小.
如何在界面构建器中使用autolayout执行此操作?
如何检测Safari是否已被iPhone上的家长控制禁用?我知道这是可能的,因为在禁用Safari之前,App X3Watch拒绝工作.据我所知,父母控制没有api,那么可以使用什么技术呢?
我间歇性地得到一个未处理的DOMException 105.它只在运行我的UI测试时发生.
如果我注释掉使用loadHTMLString:baseURLcall UIWebView,那么异常就不再发生了.
这使我的测试非常不可靠.关于如何解决这个问题的任何建议?
堆栈跟踪:
2017-01-05 16:57:01.431 Allhomes[64245:4871703] *** Terminating app due to uncaught exception 'DOMException', reason: '*** DOMException 105'
*** First throw call stack:
(
0 CoreFoundation 0x0000000110e4dd4b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00000001104b721e objc_exception_throw + 48
2 CoreFoundation 0x0000000110e4dc99 -[NSException raise] + 9
3 WebCore 0x000000011785a542 _ZN7WebCore17raiseDOMExceptionEi + 370
4 WebCore 0x000000011785a55e _ZN7WebCore23raiseTypeErrorExceptionEv + 14
5 WebCore 0x00000001177e311e -[DOMRange setStart:offset:] + 158
6 UIKit 0x000000010d92edab -[UIWebDocumentView text] + 292
7 UIKit 0x000000010d6afcde _UIViewDescriptionAppendTextIfApplicable + …Run Code Online (Sandbox Code Playgroud) 在IE8下运行我的GWT Web应用程序时,我收到了可怕的安全警告:"此网页包含无法使用安全HTTPS传送的内容"
它当然适用于Firefox和Chrome.
我用firebug查看了请求,但没有看到HTTP请求.
我还使用了Fiddler和HttpWatch与IE,我仍然看不到HTTP请求.
任何人都可以提供一些线索,告诉我还有什么可能触发这个警告吗?
我希望能够验证UI测试中导航栏中是否出现子字符串.
例如,如果导航栏标题是"Rent Properties",那么我可以这样匹配:
XCTAssert(XCUIApplication().staticTexts["Rent Properties"].exists)
Run Code Online (Sandbox Code Playgroud)
但是,这有两个问题:
如何才能做到这一点?
我正在尝试从子视图控制器回调到其父视图。传回的值已成功打印,但随后我得到了一个EXC_BAD_INSTRUCTION.
在父视图控制器中,我像这样构造子控制器:
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
if let vc = storyboard.instantiateViewControllerWithIdentifier("dataEntryView") as? DataEntryViewController {
dataEntryVC = vc
vc.callback = calculateHeartRate
self.presentViewController(dataEntryVC!, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
我像这样从子控制器回调:
@IBAction func done(sender : AnyObject) {
dismissModalViewControllerAnimated(true)
if let cb = callback {
cb(beatCount)
}
}
Run Code Online (Sandbox Code Playgroud)
对于父控制器中的此功能:
func calculateHeartRate(beats : Int?) {
println("Beats = \(beats)")
if beats {
let heartrate = 60/secondsCount * beats!
println("Heart rate \(heartrate)")
}
}
Run Code Online (Sandbox Code Playgroud)
println 正确输出到控制台,然后我在“if beats {”行上得到一个异常。
做这样的回调有什么本质上的错误吗?