一旦我收到推送通知并轻扫以打开它,它就会打开我的应用而不是我想要的VC.
所以我的问题是如何加载我想要的VC?我知道如果应用程序是打开的,我会将VC移到另一个内部,didReceiveRemoteNotification
但如果应用程序未打开,我该怎么做?或者它是否处于后台模式?
此外,我有两个不同的推送通知,因此我需要它移动两个不同的VC中的一个.如何区分不同的推送通知?
谢谢.
我正在列出为我的本地通知按下的操作,但有没有办法确定用户何时解除通知?
这是我在AppDelegate中听我的动作的方式,但是解雇并没有解雇这个问题:
func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, completionHandler: () -> Void) {
var actionName: String? = nil
if let identifier = identifier {
switch identifier {
case "snoozeAction":
actionName = "snoozeActionTapped"
break
default: break
}
if let name = actionName {
NSNotificationCenter.defaultCenter().postNotificationName(name, object: nil)
}
}
completionHandler()
}
Run Code Online (Sandbox Code Playgroud) 我有一些像琴弦NAVJYOT COMPLEX
,NEAR A ONE SCHOOL
,SUBHASH CHOWK
,MEMNAGAR
,Ahmedabad
,Gujarat
,India
.
我想将它们转换所以第一个字符是大写和剩下的都是小写的,如:Navjyot Complex
,Near A One School
,Subhash Chowk
,Memnagar
,Ahmedabad
,Gujarat
,India
.所以请帮我转换这些字符串.
提前致谢.
我正在尝试在更新表的数据时仅应用最少量的更改(UITableView
当然,这是一个iOS应用程序和表视图,但我不认为它在这里是相关的).这些更改包括添加新项目,删除旧项目以及将一些现有项目移动到其他位置而不更新其内容.我知道在SO上有类似的问题,但是大多数问题只考虑添加和删除,现有的要么被忽略要么只是重新加载.
大多数情况下,移动涉及的内容不超过现有元素,表格最多可包含500个元素.
数组中的项是唯一的.
我可以通过从旧数组中的项集合中减去新数组中的项集来轻松获取添加的项.相反的操作将产生一组已删除的项目.
所以问题归结为找到具有相同元素的两个数组之间的最小差异.
[one, two, three, four]
[one, three, four, two]
Run Code Online (Sandbox Code Playgroud)
区分这些数组应该导致从索引1到3的移动.
该算法不知道是否只有一个这样的移动.同样的变化可能是:
[one, two, three, four, five]
[one, four, five, three, two]
Run Code Online (Sandbox Code Playgroud)
这应该导致将索引1移动到4和2到3,而不是向左移动3和4两个索引,因为这可能导致移动300个项目,而实际上更改应该更简单.在将视觉变化应用于视图方面,即.这可能需要重新计算单元格高度或执行大量动画和其他相关操作.我想避免它们.作为示例 - 将项目标记为收藏,导致将项目移动到列表顶部或300项目大约需要400毫秒.这是因为我正在使用的算法,例如,100个项目向上移动一个索引,一个移动到索引0,其他199个未被触及.如果我取消标记它,一个项目会向下移动100个索引,这很好,但这是完美的,但非常罕见的情况.
我已经尝试在旧数组中查找项目索引,检查它是否在新数组中发生了变化.如果有变化我将项目从新索引移动到旧索引,记录相反的变化并比较数组,直到元素顺序相等.但这有时会导致移动实际上没有变化的大块物品,具体取决于这些物品的位置.
任何想法或指针?也许改进的Levenshtein距离算法?未经修改的人可以为此工作吗?如果是这样,我可能不得不以某种形式实现它.
橡皮鸭谈到:
考虑找到所有未更改的项目序列并移动所有其他项目.这可能是正确的方向吗?
如何创建一个按钮控件(与CreateWindow
一的BUTTON
,有一个标准的全系统的尺寸(尤其是高度)与Windows应用程序的其余部分保持一致窗口类)?我当然应该考虑DPI,可能还有其他设置.
备注:使用
USE_CW_DEFAULT
宽度和高度会产生一个0,0大小的按钮,因此这不是解决方案.
是否可以为紧凑框架的DataGrid中的列添加按钮?到目前为止,我唯一能找到的是你可以添加文本框,就是这样.什么是可以允许其他控件的DataGrid的一个很好的替代品?
我有一个用c ++开发的win32应用程序.应用程序使用基本形状(矩形)在窗口上绘制一些东西.使用InvalidateRect每20ms(50hz)重新绘制窗口.一切都运作良好,但绘图闪烁.我怎样才能防止闪烁?在c#中我通常使用双缓冲组件(如pictureBox),我怎样才能在使用win32的c ++中摆脱这个?
我希望有一个简单的自定义对话框,如消息框,具有标签和TextBox.如果有一种简单的方法可以做到这一点,抱歉!我真的不太熟悉对话的东西.
谢谢你的帮助,伙计们!
我有一个UITableView,工作正常,更新很好.我也有一个计时器,更新每个UITableView的标签和进度视图,当用户滚动表查看停止更新/于UITableView中刷新内容(标签和进度视图),直到他们完成滚动.
除了没有更新的内容,我发现当用户滚动时整个应用程序挂起.我有两个计时器,我在两者中都放了print语句,但是在用户滚动时都没有打印.我无法找到一个迅速或迅速的解决方案.
Google应用引擎告诉我优化此代码.任何人有什么想法我能做什么?
def index(request):
user = users.get_current_user()
return base.views.render('XXX.html',
dict(profiles=Profile.gql("").fetch(limit=100), user=user))
Run Code Online (Sandbox Code Playgroud)
后来我在模板中做了:
{% for profile in profiles %}
<a href="/profile/{{profile.user.email}}/"><img src="{{profile.gravatarUrl}}"></a>
<a href="/profile/{{profile.user.email}}/">{{ profile.user.nickname }}</a>
<br/>{{ profile.shortDisplay }}
Run Code Online (Sandbox Code Playgroud)
使用的方法是:
def shortDisplay(self):
return "%s/day; %s/week; %s days" % (self.maxPerDay, self.maxPerWeek, self.days)
def gravatarUrl(self):
email = self.user.email().lower()
default = "..."
gravatar_url = "http://www.gravatar.com/avatar.php?"
gravatar_url += urllib.urlencode({'gravatar_id':hashlib.md5(email).hexdigest(),
'default':default, 'size':"64"})
return gravatar_url
Run Code Online (Sandbox Code Playgroud) 我是一个相对较新的C++编程,但我是一个10年的C程序员,因此对指向对象的指针比对对象的引用更为舒服.
我正在写一个纸牌游戏 - 这个设计不安全吗?有没有更好的办法?
无论如何,我有一节课SolitaireGame
:
class SolitaireGame:
{
public:
SolitaireGame( int numsuits = 1 );
private:
Deck * _deck;
vector<Card> _shoe;
};
Run Code Online (Sandbox Code Playgroud)
在Deck
被这样定义:
class Deck:
{
public:
Deck::Deck( vector<Card>& shoe );
~Deck();
int DealsLeft() const { return deals_left; }
Card * PullCard();
private:
int deals_left;
int num_each_deal;
deque<Card *> _cards;
};
Run Code Online (Sandbox Code Playgroud)
的Deck
构造,花费的向量的参考Card
对象(鞋,通常104卡)并按下指针到每个卡到它自己的指针的双端队列.
Deck::Deck( vector<Card>& shoe )
{
vector<Card>::iterator iter = shoe.begin();
while( iter != shoe.end() )
{
_cards.push_front( &(*iter) );
iter++;
} …
Run Code Online (Sandbox Code Playgroud) c++ ×2
ios ×2
winapi ×2
algorithm ×1
appdelegate ×1
arrays ×1
c# ×1
diff ×1
drawing ×1
flicker ×1
ios8 ×1
iphone ×1
nsstring ×1
nstimer ×1
optimization ×1
pointers ×1
python ×1
smartphone ×1
uitableview ×1
vector ×1