我正在尝试使用swift为iOS 8制作应用程序.这里的目标是制作一种新闻源.此Feed显示来自用户的帖子,其遵循特定模式.
我想过使用UITableView,其中每个单元格都遵循自定义布局.当我尝试访问其中的文本标签时出现问题.我尝试通过其标签访问它,但是当我这样做时,整个应用程序崩溃了.报告的错误是"Swift dynamic cast failed"
,我正在使用以下代码访问该视图:
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
let cellId: String = "cell"
var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellId) as UITableViewCell
if let ip = indexPath{
cell.textLabel.text = myData[ip.row] as String
var lbl = cell.contentView.viewWithTag(0) as UILabel
lbl.text = "ola"
}
return cell
}
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?提前致谢!
所以,为了得到最高效的代码,我真的很想知道size()
Java中的方法是如何ArrayList
工作的......它是否像一个简单的列表一样计算每个元素,遍历所有位置?或者它只是通过最后注册的索引获取大小?
提前致谢!
我认为list-length
是一个O(n)复杂度操作,因为似乎没有其他方法可以找到它,但是要遍历所有列表的元素.
;; iterates through list's elements
;; and returns 6, right?
(list-length '(1 2 3 4 5 6))
Run Code Online (Sandbox Code Playgroud)
不过,我想确定一下,因为它对我的作品至关重要.它是否正确?
lisp performance complexity-theory common-lisp time-complexity
我正在使用NSURLSession向服务器发出请求.为此,我使用自定义completionHandler创建NSURLSessionTask.
根据结果,我想切换到另一个视图.但是,当我在完成处理程序中执行此操作时,它不起作用.该应用程序崩溃,出现以下错误:
NSInternalInconsistencyException
Run Code Online (Sandbox Code Playgroud)
完整的错误描述如下:
*** Assertion failure in -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished], /SourceCache/UIKit_Sim/UIKit-3302.3.1/Keyboard/UIKeyboardTaskQueue.m:374
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread.'
Run Code Online (Sandbox Code Playgroud)
注意:要更改视图,请使用以下代码
let vc: AnyObject! = self.storyboard?.instantiateViewControllerWithIdentifier(viewID)
self.showViewController(vc as UIViewController, sender: vc)
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
我正在AngularJS中构建一个应用程序,它使用LeafletJS与地图进行交互,提供在我称之为阶段的不同可能的交互.对于每个阶段,都有一个UIRouter
状态,包括控制器和模板.
我目前正在通过服务提供传单功能.想法是该服务初始化Leaflet地图并提供对该州控制器的一些有限访问.因此,这些控制器将调用服务功能,例如setupMarkersInteractions
设置回调,以便在地图上放置标记.
但是,我在通过Leaflet leaflet.map()
函数初始化地图时遇到了一个问题,即:Error: Map container not found
.这与Leaflet无法找到与地图相关联的HTML元素有关.
目前,我有点这样做:
function mapService() {
var map;
return {
initializeMap : initializeMap,
setupMarkersInteractions : setupMarkersInteractions
};
function initializeMap() {
map = leaflet.map('map');
}
function setupMarkersInteractions() {
map.on('click', markerPlacementCallback);
}
}
Run Code Online (Sandbox Code Playgroud)
该initializeMap
函数告诉leaflet.map
我查找一个HTML元素id='map'
,该元素在状态模板上声明.
现在,对于实际问题,这是否与某种AngularJS服务无法访问HTML模板有关?我在这个问题上找不到任何东西,但我认为服务不能直接访问视图
是有意义的...... 如果是,我应该探索什么样的解决方法?我已经研究过leaflet-directive
,但它似乎没有提供添加和删除自定义回调的可能性,我希望具有灵活性(例如,当我使用Leaflet-Freedraw添加免费绘制功能时,事情变得复杂).
我考虑leaflet.map
直接使用HTMLElement
元素的参数,但我仍然无法使它工作 - 虽然我有可能没有传递应该的东西.
我试图将JSON传递给AngularJS中的PHP脚本,如下所示:
var testObj = {
answers : {
aa : 2,
ab : 3
}
};
var userAnswers = angular.toJson(testObj.answers);
$http.post("ajax/testAddObject.php?answers=" + userAnswers).
success(function(data){
console.log("Result: ", data);
});
Run Code Online (Sandbox Code Playgroud)
在PHP方面,我做了以下事情:
//... new PDO connection to DB
$answers = $_POST['answers'];
//some more stuff
Run Code Online (Sandbox Code Playgroud)
该$answers
变量总是空的.但随后几乎随机,我看到了这个问题,答案说:
$_POST
Content-Type: application/json
在标题中传递时将为空
而且,虽然我的代码是不是完全一样从问题的人,我改变了$_POST[...]
对$_GET[...]
上的PHP代码和它的工作!问题是,为什么?彼此之间有什么区别?因为,从我看来,似乎没有太大的区别......