我在C#中有这个示例方法:
public static byte[] FromBase64Url(string data)
{
data = data.Replace('-', '+').Replace('_', '/');
return Convert.FromBase64String(data);
}
Run Code Online (Sandbox Code Playgroud)
我想在Swift中实现它.我试过这个:
class func fromBase64(baseString: String) -> [UInt8] {
let data = baseString.replace("-", withString: "+").replace("_", withString: "/")
var buff = [UInt8]()
buff += data.utf8
return buff
}
Run Code Online (Sandbox Code Playgroud)
但它会返回不同的结果.我很少与返回C#方法的东西混淆.这些方法的输入是这个字符串:
kc_jYgaSXyZ0c7oAAACQAQAAAO560uWYfkmUGkgU7Gbn7Cs =
C#方法返回包含35个项目的字节数组.我在快速方法中获得了48个具有不同值的项目.我知道它不会像Base64那样长,但我必须使用它.
为什么.NET方法返回的项目较少?如何实现我的swift方法以获得与C#相同的结果?
假设我有这个字符串数组:
let Vehicles = ["Aeroplane", "Bicycle", "CarVehicle", "Lorry", "Motorbike", "Scooter", "Ship", "Train"]
Run Code Online (Sandbox Code Playgroud)
我想要的是这个结果:
let resultArray = [["Aeroplane", "Bicycle", "CarVehicle", "Lorry"], ["Motorbike", "Scooter", "Ship", "Train"]]
Run Code Online (Sandbox Code Playgroud)
我知道我可以做到这一点,for但我想在Swift中使用高阶函数.我的意思是map,reduce,filter等函数.我认为这样做可能会更好.谁能帮我这个?谢谢
我已经看过很多教程,他们真的帮助我了解父子管理对象上下文以及与此相关的其他事情.我准备开始在我的应用程序中使用它,但我有一个问题.为什么没有人使用单例来保持主要的托管对象上下文.我想从AppDelegate中提取Core Data相关对象并将其设置为自己的类更好?像raywenderlich.com这个教程中的内容.但是他们仍然实例化CoreDataStack类(没有问题,单例也必须实例化)并且当需要时他们在prepareForSegue中设置managedObjectContext(并将其设置为来自AppDelegate的第一个视图控制器).为什么不删除这个需求,只使用单例CoreDataStack,并且如果需要可以在每个控制器中使用managedObjectContext?
第二个和奖金问题:我认为最好在控制器中使用更少的代码,在其他类中使用更多的代码.我认为这有助于提高可读性.那么如果我从控制器移动此代码并将其设置为CoreDataStack类或其他一些有助于核心数据请求和响应的类,该怎么办?
func surfJournalFetchRequest() -> NSFetchRequest {
let fetchRequest =
NSFetchRequest(entityName: "JournalEntry")
fetchRequest.fetchBatchSize = 20
let sortDescriptor =
NSSortDescriptor(key: "date", ascending: false)
fetchRequest.sortDescriptors = [sortDescriptor]
return fetchRequest
}
Run Code Online (Sandbox Code Playgroud)
我知道这是可能的,但它更好吗?如果您从我那里获得应用程序代码,那么如果在控制器中它会是一行会更好CoreDataStack.fetchRequest("JournalEntry", sortedKey: "date")吗?
如果我接受这个代码并将其插入单例并使用闭包创建函数呢?我会在单例中创建子管理上下文并在那里做必要的操作,在控制器中我只会更改UI:
func exportCSVFile() {
navigationItem.leftBarButtonItem = activityIndicatorBarButtonItem()
let privateContext = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
privateContext.persistentStoreCoordinator = coreDataStack.context.persistentStoreCoordinator
privateContext.performBlock { () -> Void in
var fetchRequestError:NSError? = nil
let results = privateContext.executeFetchRequest(self.surfJournalFetchRequest(), error: &fetchRequestError)
if results == nil {
println("ERROR: \(fetchRequestError)")
}
let exportFilePath = …Run Code Online (Sandbox Code Playgroud) I have tableView size set by AutoLayout (bottom to Bottom Layout Guide, top to another view and so on but first UISearchBar to Top Layout Guide):

Controller with tableView:

I need to change table offset when keyboard is shown so I have these two methods:
// MARK: - Keyboard
func keyboardWasShown (notification: NSNotification) {
let info: NSDictionary = notification.userInfo!
let value: NSValue = info.valueForKey(UIKeyboardFrameBeginUserInfoKey) as! NSValue
let keyboardSize: CGSize = value.CGRectValue().size
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
self.tableView.scrollIndicatorInsets = self.tableView.contentInset …Run Code Online (Sandbox Code Playgroud) 我研究过拆分视图的例子(就像这个一样)并且效果很好.我只需要改变一下行为.我希望当用户拥有iPad纵向时,可以看到主控制器和细节控制器.它应该像FB Messenger或Skype一样工作.两个控制器并排,无法隐藏主控制器.怎么可能这样做?感谢帮助
奖金问题:是否有可能以某种方式设置iPad肖像的行为与iPhone肖像相同?如果我改变主意,我希望全屏显示细节,点击左侧导航栏按钮后,我会在全屏显示主视图,而不显示细节.我是可能的还是拆分视图决定了这一点并且我能做些什么呢?
这就是我在控制器中所拥有的:
@FXML
private MediaView mediaView;
Run Code Online (Sandbox Code Playgroud)
在处理按钮按下的方法中我得到了filechooser:
File file = fileChooser.showOpenDialog(null);
if(file != null){
initPlayer(file.toURI().toString());
}
Run Code Online (Sandbox Code Playgroud)
这是方法initPlayer:
private void initPlayer (String uri) {
if (uri == null)
return;
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer = null;
}
Media media = new Media(uri);
mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
mediaView = new MediaView(mediaPlayer);
mediaPlayer.setOnReady(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是我在场景构建器中创建的视图中的代码的一部分:
<Pane layoutX="80.0" layoutY="14.0" prefHeight="480.0" prefWidth="640.0">
<MediaView fx:id="mediaView" fitHeight="480.0" fitWidth="640.0" />
</Pane>
Run Code Online (Sandbox Code Playgroud)
当我选择文件时,我听到了声音,但我看不到视频.这段代码有什么问题?我错过了什么?
我从我发现的一些资源中编写了这个脚本.它工作但我有些文件我有问题.我是F#的新手,所以如何使用FileHelpersException更改行以获得确切的行问题?谢谢
// Learn more about F# at http://fsharp.net
// See the 'F# Tutorial' project for more help.
open FileHelpers
open System
[<DelimitedRecord(",")>]
type CsvRecord =
class
val field1 : string
val field2 : string
val field3 : int
new () = {
field1 = ""
field2 = ""
field3 = 0
}
end
[<EntryPoint>]
let main argv =
use file = System.IO.File.CreateText("result.txt")
let engine = new FileHelperEngine<CsvRecord>()
engine.Encoding <- new Text.UTF8Encoding()
let res =
try
engine.ReadFile("test.csv")
with
| :? FileHelpersException …Run Code Online (Sandbox Code Playgroud) 我正在使用自己的会员提供商,我可以登录和注销.当我登录时,它已经登录了一会儿,然后没有用户登录.我不知道问题出在哪里但是当我在我的计算机上尝试它(IIS Express)时,用户登录很长时间但是当我将我的网站上传到我的托管服务提供商时,用户只登录了几秒钟.感谢帮助
asp.net-mvc asp.net-membership login custom-membershipprovider asp.net-mvc-3
我想将Crashlytics添加到我的项目中,然后根据Fabric Mac app制作了所有内容,我现在坚持了下来
验证安装时的第2步,共2步
我已经添加:
[Fabric with:@[[Crashlytics class]]];
Run Code Online (Sandbox Code Playgroud)
方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Run Code Online (Sandbox Code Playgroud)
我也添加了进口:
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>
Run Code Online (Sandbox Code Playgroud)
应用程序已启动,但在Fabric应用程序中仍然没有进展.
当我将debugMode设置为Yes时,我得到以下信息:
2016-07-13 11:23:21.689阿基米德酷[8565:3143059] [Crashlytics]版本3.7.2(112)2016-07-13 11:23:21.789阿基米德酷[8565:3143059] [Crashlytics]在iPad4上运行,4,9.3.2(13F69)2016-07-13 11:23:21.883阿基米德酷[8565:3143059] [面料]用套件版本初始化:{"com.twitter.answers.ios"="1.2.1" ; "com.twitter.crashlytics.ios"="3.7.2"; "io.fabric.sdk.ios"="1.6.7"; }
2016-07-13 11:23:22.555 Archimedes Cool [8565:3143092] [Fabric]无法下载设置Error Domain = NSPOSIXErrorDomain Code = 2"No such file or directory"UserInfo = {NSErrorFailingURLKey = https://settings.crashlytics .com/spi/v2/platforms/ios/apps/cz.ai.Archimedes-Cool/settings?build_version = 1.24.3.4537&display_version = 1.24.3&instance = a5697790406418f18d7057545ad7cf5cc23e431d&icon_hash = db9967486042bc2829965401b58f06c932384acd&source = 1,NSErrorFailingURLStringKey = https://settings.crashlytics. com/spi/v2/platforms/ios/apps/cz.ai.Archimedes-Cool/settings?build_version = 1.24.3.4537&display_version = 1.24.3&instance = a5697790406418f18d7057545ad7cf5cc23e431d&icon_hash = db9967486042bc2829965401b58f06c932384acd&source = 1 }
我用真实设备(iPad和iPhone)尝试过,但不是在模拟器中.我甚至尝试通过CocoaPods安装它,但同样的问题.谁能帮我?谢谢
ios ×4
swift ×4
autolayout ×2
arrays ×1
asp.net-mvc ×1
base64 ×1
c# ×1
core-data ×1
crashlytics ×1
csv ×1
f# ×1
filehelpers ×1
ipad ×1
java ×1
javafx-2 ×1
login ×1
media-player ×1
objective-c ×1
parsing ×1
scenebuilder ×1
singleton ×1
size-classes ×1
uitableview ×1