我在 Xcode 7 beta 4 中创建了一个故事板,并使用 Parse.com 来存储我的数据。我的故事板包含一个带有“登录”和“注册”按钮的初始屏幕,这些按钮将用户(使用模式转场)导航到各自的屏幕(登录和注册屏幕是嵌入在两个单独的导航控制器中的两个单独的屏幕)。从登录屏幕,我创建了一个到新视图控制器的推送序列(这是登录后屏幕)。进入注册和登录屏幕没有任何问题。
问题是当用户通过登录屏幕成功登录时。当我输入有效的用户凭据并单击“登录”时,它会转至下一个屏幕(导航栏上带有 <“登录”),然后立即再次转至不存在的屏幕(导航栏上带有 <“返回”)导航栏)。有谁知道为什么会发生这种情况?我只是希望 Segue 将用户带到下一个屏幕...我不确定为什么它要在两个屏幕之间转换。
这是我在 LoginViewController.swift 中的“登录”按钮操作的代码:
@IBAction func loginButton(sender: AnyObject) {
if emailAddressLogin.text == "" || emailAddressPassword.text == "" {
displayAlert("Login Error", message: "Please enter a valid username and password")
} else {
activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 50, 50))
activityIndicator.center = self.view.center
activityIndicator.hidesWhenStopped = true
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
view.addSubview(activityIndicator)
activityIndicator.startAnimating()
UIApplication.sharedApplication().beginIgnoringInteractionEvents()
var errorMessage = "Please try again"
PFUser.logInWithUsernameInBackground(emailAddressLogin.text!, password: emailAddressPassword.text!, block: { (user, error) -> Void in
self.activityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents() …Run Code Online (Sandbox Code Playgroud) 是否可以将“空”对象保存在对象中以保存引用,而不必先获取完整对象?
我正在这样做:
var myObject = new MyObject();
myObject.id = "id I retrieved somewhere on my client device"
// later
var user = request.user;
user.set("key", myObject);
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它说“无法创建指向未保存的 ParseObject 的指针”
我收到以下运行时错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“double android.location.Location.getLatitude()”
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationManager;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.util.Log;
import android.widget.ListView;
import com.parse.ParseException;
import com.parse.ParseFile;
import com.parse.ParseGeoPoint;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
// Declare Variables
ListView listview;
List<ParseObject> ob;
ProgressDialog mProgressDialog;
ListViewAdapter adapter;
Context context;
private List<PlaceFilter> worldpopulationlist = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from listview_main.xml
setContentView(R.layout.activity_main);
// Execute …Run Code Online (Sandbox Code Playgroud) 我需要我的应用程序 VIP 功能在今天起 30 天后过期,我会将当前日期存储在应用程序配置中。如何查看VIP功能是否已过期?我不介意用户是否将时钟调回并且应用程序可以正常工作。
当用户激活VIP功能时
mCurrentUser.setVip();
mCurrentUser.SaveInBackgroud();
// in want to also set StartDate and EndDate
Run Code Online (Sandbox Code Playgroud)
然后验证 mCurrentUser endDate 中保存的日期是否等于今天
// set user to no VIP! like
mCurrentUser.setNoVip();
mCurrentUser.SaveInBackgroud();
Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用 Parse-Server 的应用程序,并以自己的方式进行身份验证。在不知道密码的情况下如何登录用户?
从之前的答案中,我找到了 this Parse.User.become(<token>),但无法在任何地方获取令牌。我在云代码中有这个,但它似乎token不起作用undefined。可能是因为用户中没有会话,因为用户根本没有登录(会话是可撤销的)。
function login(userId,callback) {
var query = new Parse.Query(Parse.User);
query.get(userId, {useMasterKey : true}).then(function(user){
if (user) {
console.log(user)
var token = user.getSessionToken();
console.log('Token ' + token);
if (typeof callback === "function") callback({token:token});
}
},function(error){
if (typeof callback === "function") callback({error:error});
})
}
Run Code Online (Sandbox Code Playgroud) 我正在将 Javascript 用于 Parse.com 云代码。根据 Parse.com,他们返回 UTC 时间。我现在是东部夏令时间 (GMT -4)
我试图在午夜获取今天的日期,但没有成功。这是我的代码:
var date = new Date();
var startDay = Math.floor((date.setUTCHours(4,0,0,0) / 1000));
Run Code Online (Sandbox Code Playgroud)
因此,每天晚上 8 点之前,代码会在午夜返回今天的日期,这正是我想要的。但是,晚上 8 点之后,它会在午夜返回明天的日期。我相信原因是由于 UTC 日期在午夜更改为 Today+1。但我不知道如何以在午夜获得当地日期的方式解决这个问题。
PS:我也尝试过setHours(4,0,0,0),没成功。如果我使用setUTCHours(0,0,0,0)它,则会返回今天晚上 8 点的日期
感谢您的帮助。
在我的注册页面上,我希望用户使用确认密码文本字段来确认他们选择的密码。我正在使用 Swift。
这是我的注册代码
if(newUser.password != self.confirmPassword.text){
let alertController = UIAlertController(title: "Sign Up Failed", message: "Sorry, your Passwords were not matching.", preferredStyle: .Alert)
let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in
// ...
}
alertController.addAction(OKAction)
self.presentViewController(alertController, animated: true) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
这是在我的 @IBAction func confirmButton(sender: AnyObject)
编辑:
我没有收到错误,如果我只填写两个不同的密码或根本没有密码,Parse 仍然会注册用户。
谢谢。
我正在使用sdk 1.8.2,其回调类似于:
commentObjectsQuery.findInBackground(new FindCallback() {
@Override
public void done(List list, ParseException e) {
}
});
Run Code Online (Sandbox Code Playgroud)
现在在sdk 1.9.1中他们有这个:
commentObjectsQuery.findInBackground(new FindCallback() {
@Override
public void done(List list, ParseException e) {
}
@Override
public void done(Object o, Throwable throwable) {
}
});
Run Code Online (Sandbox Code Playgroud)
第二个完成的方法是什么?
更新:
我试过清理项目但没有运气.
它在编译时显示此错误:
Error:(107, 65) error: <anonymous com.pickup.pickrup.activities.CommentActivity$1> is not abstract and does not override abstract method done(Object,Throwable) in ParseCallback2
Run Code Online (Sandbox Code Playgroud) 在下面的函数中,我试图Users通过用户名在Parse.com上的表中找到当前用户,并添加/更新一个名为的字段值salaryMode.
以下是我的功能和我得到的错误:
我看到错误:

不能下标[AnyObject]的值?索引类型为String
func saveUserSalaryInfo() {
var query = PFQuery(className:"User")
query.whereKey("username", equalTo: PFUser.currentUser()!.username!)
query.findObjectsInBackgroundWithBlock {
(users: [AnyObject]?, error: NSError?) -> Void in
if error != nil {
users["salaryMode"] = self.salaryMode
} else {
// Log details of the failure
//NSLog("Error: %@ %@", error, error.userInfo)
}
}
}
Run Code Online (Sandbox Code Playgroud) 假设我有一张桌子
---------Image-------------
imageFile (File) | thumbnail (File) | Post (a pointer to Post)
Run Code Online (Sandbox Code Playgroud)
知道如何编写云代码以在另一列中获取该图像的较小版本吗?
例如,如果用户上传了(2000x3500 像素)图像,Parse 会将其保存在 imageFile 列中,并将其缩略图保存在另一列中
谢谢
parse-platform ×10
android ×3
ios ×3
java ×3
swift ×3
iphone ×2
javascript ×2
xcode ×2
datetime ×1
geolocation ×1
parse-server ×1
sdk ×1