有没有办法过滤共享扩展程序,以便仅在例如URL域是特定的域时显示?
例如,我想仅在用户共享Google链接时显示我的应用扩展程序:
http://www.google.com/?someQuery
如果我要过滤获取网址,那么下面的代码就足够了:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"
).@count == $extensionItem.attachments.@count
).@count == 1
Run Code Online (Sandbox Code Playgroud)
在这种情况下,谓词访问$attachment的registeredTypeIdentifiers属性并对其进行评估.我希望能够将REGEX与内部的值匹配$attachment,如下所示:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" AND
ANY $attachment.value MATCHES "^http\:\/\/www\.google\.com\/"
).@count == $extensionItem.attachments.@count
).@count == 1
Run Code Online (Sandbox Code Playgroud)
...所以当我的应用程序不支持主机应用程序共享的URL时,我的扩展名将不可见.
PS:请注意,所使用的URL域只是一个示例.当然,真正的一个具有像这样使用的意义.
我-[tableView reloadData]在我的应用程序中有一个方法,并使执行更快,我已通过以下方法在GCD中调用它.
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[tableView reloadData];
});
Run Code Online (Sandbox Code Playgroud)
但是当我弹出我的viewController时,应用程序崩溃了这条消息[SecondViewController numberOfSectionsInTableView:]: message sent to deallocated instance 0x7fe376206e10.我假设[reloadData]在从ViewController退出后仍然执行.我该如何停止执行?我应该把它变成NSOperation吗?如果是这样,我该怎么做?
我们可以使用heredocs使用sudo运行多个命令吗?
我在运行多个命令时遇到问题(需要为每个命令传递密码):
echo 'password'| sudo -S ls
echo 'password'| sudo -S cat /var/log/abc.log
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我如何在脚本中自动化这个?喜欢:
echo 'password' | sudo -S << ENDBLOCK
ls
cat
ENDBLOCK
Run Code Online (Sandbox Code Playgroud) 我正在开发在线广播播放器,需要一些帮助。当我设置时,MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo我有标题、控件和播放持续时间滑块。我不需要这个滑块,因为我没有有关播放持续时间的信息,而且它不是一个很好看的控件。有人可以提示我如何隐藏播放持续时间滑块吗?还有一个问题:由于该应用程序是在线广播播放器,因此用户无法前进或后退播放,因此我想从锁定屏幕和控制中心隐藏此控件。顺便说一句,我正在使用 Swift。提前致谢!
我已经编写了一个代码来显示Toast何时按下耳机媒体按钮.我使用了意图过滤器来完成它.但问题是当我按下媒体按钮时它会发射两次.我的代码是:
MainActivity.java
private MusicIntentReceiver myReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myReceiver=new MusicIntentReceiver();
((AudioManager)getSystemService(AUDIO_SERVICE)).registerMediaButtonEventReceiver(new ComponentName(
this,
MusicIntentReceiver.class));
}
@Override
public void onResume(){
IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
IntentFilter filter1=new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
filter1.setPriority(100);
registerReceiver(myReceiver, filter);
registerReceiver(myReceiver,filter1);
super.onResume();
}
@Override
public void onPause() {
IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
IntentFilter filter1=new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
filter1.setPriority(100);
registerReceiver(myReceiver, filter);
registerReceiver(myReceiver,filter1);
super.onPause();
}
Run Code Online (Sandbox Code Playgroud)
BroadcastReceiver.java
public class MusicIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String intentAction=intent.getAction();
Toast.makeText(context, "Action: "+intentAction, Toast.LENGTH_SHORT).show(); …Run Code Online (Sandbox Code Playgroud) 实现如下设计的最佳方法是什么?
几件事:
我倾向于UICollectionView,但我不确定如何做"级别单元格".其中一种方法可能是将水平图像分成四个并在每个单元格上绘制它们?但是,我不确定这是否是最好的解决方案.
更多信息:

ios ×4
android ×1
avplayer ×1
bash ×1
controls ×1
grid ×1
intentfilter ×1
java ×1
linux ×1
objective-c ×1
predicate ×1
shell ×1
sudoers ×1
swift ×1
ubuntu-12.04 ×1
uitableview ×1