我对 swift 比较陌生;我正在研究过滤数组。我知道如何过滤掉包含字母的数组元素(像这样:)let filteredList = wordlist.filter { !$0.characters.contains(letter) },但是如何过滤掉没有字母的元素?这是我想要完成的:我有一个字符串数组格式的单词列表,即 ["thing", "other thing"] (但更长),我想返回每个具有特定字母的元素,过滤掉那些没有特定字母的。
提前致谢。
我正在将不活动警报编程到我的支持 HealthKit 的 iOS 应用程序中。当用户在过去 60 分钟内行走的步数少于 100 步时,它会根据 Health 中的数据发送通知。当应用程序打开时,这可以完美运行,但我在使其在后台运行时遇到了一些麻烦。我已经尝试获取步骤数据以及本教程中描述的后台位置检查程序(https://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial),但由于某种原因位置数据停止当教程的程序在真正的 iPhone 上运行时在后台收集。
所以,我的问题是:即使应用程序已关闭数天,我的应用程序如何在后台每分钟可靠地检查健康数据?
我正在创建一个Android应用,用户可以在其中选择几张要共享的图像(存储在该drawable文件夹中),然后该应用打开一个标准的ACTION_SEND选择器,以允许他们将其共享到任何支持PNG的应用中,例如:
Uri imageUri = Uri.parse("android.resource://com.owlswipe.imagesharer/" + getImage());
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
sendIntent.setType("image/png");
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(sendIntent, "share to an app"));
public int getImage() {
return R.drawable.firstimage;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果用户选择将其共享给Whatsapp,它将无法正常工作:与其将其解释为图像(例如,如果您通常与Whatsapp共享照片),不如将其解释为图像,该文档称为“无标题”,并且不会显示作为图像。
在计算机上打开此“无标题”文档将显示该文档名为“ DOC-20180721-WA0012.无文件扩展名”!手动png在文件名的末尾添加a 将显示正确的图像。
使这个怪异的(但绝对可以解决!):
例如,如果用户选择在SMS应用程序中打开图像,则图像会正常显示。
这发生在多种设备上(P beta上的Pixel 2和7.1.1上的Nokia 2)
在其他应用程序中不会发生此问题,在其他应用程序中,PNG可以像正常图像一样通过Whatsapp发送(尽管它们似乎确实被Whatsapp自动转换为JPEG)。
我该怎么做才能确保Whatsapp将我的图片视为正确的PNG文件?另外,如何正确共享应用程序中预加载的图像,以便每个应用程序都能正确解释它?
我对swift和iOS相对较新,而且我在使用Contacts时遇到了一些问题.我使用过apple的资源(https://developer.apple.com/library/prerelease/mac/documentation/Contacts/Reference/Contacts_Framework/index.html),但我无法弄清楚如何获取单个联系人的生日.我想获取用户输入的名称,并将匹配联系人的生日输出到标签.我正在使用let contacts = try store.unifiedContactsMatchingPredicate(CNContact.predicateForContactsMatchingName("\(fullnamefield.text!) \(lastnamefield.text!) \(suffixfield.text!)"), keysToFetch:[CNContactBirthdayKey]),但这会产生一个我无法理解的数组.
我们非常感谢您使用新的"联系框架"快速找到特定联系人生日的帮助.
我在swift中构建了一个计算器,我希望拥有蓝牙键盘的iPad用户可以在没有任何屏幕键盘干扰的情况下打字.我认为最好的方法是使用UIKeyCommands,但是我遇到了一个问题:而使用objective-c你可以做类似的事情[UIKeyCommand keyCommandWithInput:@"f" modifierFlags:0 action:@selector(keyPressF)],在swift中不能有'0'修饰符标志.
请回答其中一个!
当用户在没有文本字段作为第一响应者且没有按下控制或选项键的情况下在iPad蓝牙键盘上键入特定字符时,如何快速实现?
当我按下command-j时会发生一些事情.当我按下我的iPad BT键盘上的4键时,我可以做些什么吗?"
我对迅捷相对较新.我试图制作一个程序,它采用wordlist(以字符串数组的形式)并删除不包含用户选择的字母的字符串.因此,如果词汇表是["apple","banana","cherry","date","endive"],并且用户选择字母"a"(这是变量"centerletter"),"apple", "香蕉"和"日期"将被退回,因为他们做包含字母a.当输入的数组(wordlist)是像["apple","banana"]这样的标准数组时,此代码有效.但是,我对此代码的实际用途是对英语中的每个单词进行排序,如我的文件"words.txt"(我的swift项目中的一个文件)中所示.
我已将words.txt中的每个单词(由/ n分隔)分配到wordlist,如下所示(这是函数):
func arrayFromContentsOfFileWithName(fileName: String) -> [String]? {
let path = NSBundle.mainBundle().pathForResource("words", ofType: "txt")
var fileContents: String? = nil
do {
fileContents = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
return fileContents!.componentsSeparatedByString("\n")
} catch _ as NSError {
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
我将wordlist分配给arrayFromContentsOfFileWithName("words.txt")的结果,如下所示:
var wordlist = arrayFromContentsOfFileWithName("words.txt")
Run Code Online (Sandbox Code Playgroud)
然后我用这段代码捣乱wordlist(试图取出不包含用户选择的字母的单词列表中的每个单词(在我的例子中为"a").这段代码适用于像["apple","banana"这样的标准数组],但不是在使用函数arrayFromContentsOfFileWithName创建的数组上.
let centerlet:Character = Character(Array(arrayLiteral: centerletter.text!)[0])
Run Code Online (Sandbox Code Playgroud)
// centerlet是用户选择的字母.
for var i = 0; i < wordlist?.count; i++ {
if wordlist![i].characters.contains(centerlet) {
print("I am leaving in \(wordlist![i]) because it contains the center …Run Code Online (Sandbox Code Playgroud) 我在Swift中制作Mac应用程序,遇到了问题。从终止状态启动我的应用程序时,它会自动启动一个新窗口。但是,如果用户X退出我的应用程序(带有红色的X图标)而不是退出应用程序,然后点击了我应用程序的应用程序图标,则不会自动打开新窗口。
只要没有打开我的应用程序窗口,我如何才能使Mac应用程序在每次点击停靠图标时启动新窗口?