场景 =我慢慢地,但肯定地围绕着Parse的云代码功能.我只是需要那些想要回答一些关于一些示例云代码函数中发生的事情的简短而相对简单的问题的人的帮助.
我将在此示例中使用的代码如下
1)云代码
Parse.Cloud.define('editUser', function(request, response) {
var userId = request.params.userId,
newColText = request.params.newColText;
var User = Parse.Object.extend('_User'),
user = new User({ objectId: userId });
user.set('new_col', newColText);
Parse.Cloud.useMasterKey();
user.save().then(function(user) {
response.success(user);
}, function(error) {
response.error(error)
});
});
Run Code Online (Sandbox Code Playgroud)
2)从iOS调用
[PFCloud callFunction:@"editUser" withParameters:@{
@"userId": @"someuseridhere",
@"newColText": @"new text!"
}];
Run Code Online (Sandbox Code Playgroud)
这段代码来自这里
问题1 =
(request, response)
Run Code Online (Sandbox Code Playgroud)
我很困惑这是什么.这就像我在iOS中的类型转换(在iOS调用中)我想将NSString传递给这个函数("userId"),在云代码函数中我会称之为"请求"吗?那是怎么回事?
问题2 =
Parse.Object.extend('_User')
Run Code Online (Sandbox Code Playgroud)
这是从Parse数据库抓取"User"类,以便各种"PFObject"可以通过在它下面的行中创建一个新的"用户"来更新它吗?
这是......
PFObject *userObject = [PFObject objectWithClassName:@"User"]?
Run Code Online (Sandbox Code Playgroud)
问题3 =
user.set('new_col', newColText)
Run Code Online (Sandbox Code Playgroud)
这显然"设置"要保存到PFUser的值(〜我认为).我知道"newColText"变量是要设置的文本 - 但是'new_col'是什么?我唯一能想到的是,这会在数据库中设置一个新列的名称,通过"请求"传递什么类型?
这是......
[[PFUser currentUser] setObject: forKey:]
Run Code Online (Sandbox Code Playgroud)
问题4 …
我有一个允许用户登录Facebook或Twitter的应用程序.有单一的
-(void)logInViewController:(PFLogInViewController )logInController didLogInUser:(PFUser )user
Run Code Online (Sandbox Code Playgroud)
管理PFLogInViewController登录的方法.如何检查用户是否按下了Facebook登录按钮或Twitter登录按钮?我的应用程序中有功能,需要根据登录类型进行不同的设置.
场景=我有一个应用程序,允许用户登录并查看也是"在线"的其他用户.为了设置每个用户的在线状态,我相信我应该设置代码......
[PFUser currentUser] setObject:[NSNumber numberWithBool:YES] forKey:@"isOnline"];
[[PFUser currentUser] saveInBackground];
Run Code Online (Sandbox Code Playgroud)
在用户使用应用程序时在应用程序中的某些时间.可能是appDelegate,但我不确定.
(如果这不正确那么请纠正我)
问题=应该在应用程序中设置此代码的位置,以便始终跟踪用户何时"在线"以及何时"脱机"?
(请包括方法名称)
我有一个来自在线数据库的字符串数组,我试图确定最常用的单词.数组内部的值会有所不同,但我想查看我正在使用的任何集合或单词中最常见的单词.如果理论上我有一个以下阵列......
NSArray *stringArray = [NSArray arrayWithObjects:@"Duck", @"Duck", @"Duck", @"Duck", @"Goose"];
Run Code Online (Sandbox Code Playgroud)
如何遍历此数组以确定最常见的字符串,这显然是"鸭子"?
场景=我有一个应用程序,允许用户搜索使用该服务的其他用户.在搜索页面中有一个UISearchDisplayController,当用户开始在搜索栏中输入时,tableView将以编程方式显示(就像任何其他UISearchDisplayController一样)并根据输入的内容过滤数据库中的所有用户('开头 - ").因此用户将开始键入"B ... r ...."并且用户将开始将tableView从"Brad"填充到"Brandon"等等,基于输入的文本.
问题=如何设计解析查询以实现此效果?
具体问题=
1)何时何地开始初始查询?...
PFQuery *searchQuery = [PFUser query];
[searchQuery whereKey:@"username" containsString:controller.searchBar.text];
[searchQuery orderByDescending:@"updatedAt"];
[searchQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSLog(@"%@", objects);
searchArray = objects;
}];
Run Code Online (Sandbox Code Playgroud)
在"searchDisplayControllerDidBeginSearch"中?
2)何时何地我将逻辑填入tableView?
PFObject *searchObject = [searchArray objectAtIndexPath:indexPath.row];
cell.nameLabel.text = searchObject[@"name"];
Run Code Online (Sandbox Code Playgroud)
在"cellForRowAtIndexPath"中?
如果有人知道这一点,可以帮助我,我很欣赏它.
这是Parse的官方视频,向您展示如何在Mac上设置Parse的Cloud Code.我喜欢他们使用SDK的简单和详细记录,但这有点超出了我的iOS编码知识.此外,设置过程中会产生一些矛盾和混淆.我将在下面详述.
1)视频告诉你要做的第一件事就是打开你的终端并打字
这(来自我的iOS眼睛)与Docs告诉我做的类型相矛盾
Docs版本中有一个〜$前面.
问题1)"〜$"是什么意思,为什么它在视频中而不在文档中?
2)让我困惑的下一件事是接下来要求我输入的视频
导航到我的应用程序.这是Docs告诉我要打字的另一个直接矛盾
问题2)那我该听哪个?视频或文档?
(如果您回答其中任何一个问题,请将其作为此问题)问题3)"Geolocations"或"MyCloudCode"是否正在配置应用程序的名称?所以,如果我有一个名为"FunnyPants"的应用程序,我会写
~$ cd FunnyPants
~/FunnyPants (master *)$ parse new
Run Code Online (Sandbox Code Playgroud)
要么
$ parse new FunnyPants
Email: ninja@gmail.com
Password:
1:MyApp
Select an App: 1
$ cd FunnyPants
Run Code Online (Sandbox Code Playgroud)
?
场景
我想在我的应用程序中使用这两个云函数.他们检查用户的在线状态,我想为每个用户设置一个布尔键"isOnline",如果用户在线则为YES,如果不是则为NO.
var moment = require("moment");
Parse.Cloud.define("registerActivity", function(request, response) {
var user = request.user;
user.set("lastActive", new Date());
user.save().then(function (user) {
response.success();
}, function (error) {
console.log(error);
response.error(error);
});
});
Parse.Cloud.define("getOnlineUsers", function(request, response) {
var userQuery = new Parse.Query(Parse.User);
var activeSince = moment().subtract("minutes", 2).toDate();
userQuery.greaterThan("lastActive", activeSince);
userQuery.find().then(function (users) {
response.success(users);
}, function (error) {
response.error(error);
});
});
Run Code Online (Sandbox Code Playgroud)
问题
我不是最好的Javascript,因此我需要一些帮助让我了解正在发生的事情/我应该做的事情.
问题
1)我何时在Xcode项目中调用"registerActivity"和"getOnlineUsers"?
2)"response.success(users)"只是一组PFUser对象吗?
3)如果"2)"为真,那么如果它们在数组中,如何将"response.success(users)"中的所有用户的bool键"isOnline"设置为YES?
场景 =我有一个PFQueryTableViewController(PFQTVC),UIView位于表视图的第一行上方,但位于顶部的导航栏下方.此视图将图片作为子视图,并且该视图会在viewDidLoad方法中加载到屏幕中.
问题 =当PFQueryTableViewController正在加载时,它有一个"Loading ..."提示,它自动放置在屏幕中间并保持在那里直到它完成加载PFQTVC的内容.当不可避免地将UIView放在装有UIView的图片上时,这会造成难看的外观.
问题 =有没有人知道如何检查(如果声明)PFQTVC何时完成加载它的内容.因为那时候我可以说像......(原谅假代码)
if ([PFQTVC finishedLoading]) {
self.view.hidden = NO;
}
Run Code Online (Sandbox Code Playgroud)
这样,在PFQTVC完成加载并且从页面上删除"正在加载..."提示之前,将不会显示带有我图片的UIView.并且UIView将在加载PFQTVC的所有单元的同时加载.
答案 =(谢谢@valheru)
-(void)objectsDidLoad:(NSError *)error {
[super objectsDidLoad:error];
self.loadingViewEnabled = YES;
self.view.hidden = NO;
}
Run Code Online (Sandbox Code Playgroud) 让这个想法发挥作用的方式是什么?
if ([[PFUser currentUser][@"isBool"]==YES) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
我刚试过这个并没有用.
场景 =我有一个具有消息传递功能的应用程序.在发送消息时,还将向接收者的电话发送推送通知.我希望用户每当用户接收带有"警报"(在屏幕上显示消息),"徽章"(红色圆圈中的应用程序图标徽章编号)和"声音"(在推送时播放的声音)的推送通知是不是看Instant Messenger的屏幕-当用户IS的即时通讯屏幕上,我希望用户收到"徽章"和"声音" ONLY.
为什么我不想在Instant Messenger屏幕上发送"警报"? 因为当消息加载到tableView时,即时消息屏幕已经向用户显示消息.当他们不得不一直点击它以便在屏幕上再次阅读时,我为什么要将IM推送到他们的屏幕上并显示"警报"?没有意义.
为什么我只希望用户在IM屏幕上收到"徽章"? 这是因为我的应用程序不断检查要增加的应用程序的徽章计数,以便在引发应用程序徽章时刷新表格视图.我还希望播放"声音"以通过声音通知用户Push已进入他们的手机.
需要注意的事项 =我的应用程序基于一个架构,其中包含一个Tab栏控制器,其中包含每个选项卡的导航控制器.如果这有所作为.
编辑 - 总结和简化的问题.
你是怎么做到的?...(不是真正的代码)
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
if (isOnInstantMessagingScreen) {
//Disable Push "Alert" messages
//Enable Push "Badge"
//Enable Push "Sound"
}
else {
//Enable Push "Alert" messages
//Enable Push "Badge"
//Enable Push "Sound"
}
Run Code Online (Sandbox Code Playgroud) objective-c push-notification apple-push-notifications ios parse-platform
ios ×9
objective-c ×5
cloud ×2
javascript ×2
command-line ×1
facebook ×1
login ×1
nsarray ×1
nsstring ×1
twitter ×1
uitableview ×1