标签: pfquery

UITableView setSeparatorInset无法正常工作

我试图在UITableView中为分隔符设置自定义插件.这是我的viewDidLoad代码

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView registerClass:[ChatTableCell class] forCellReuseIdentifier:@"ChatCell"];
    [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 65, 0, 0)];
}
Run Code Online (Sandbox Code Playgroud)

单元格分隔符插图无法正常工作,如图所示.它适用于某些细胞而不适用于其他细胞.我在这做错了什么?

这是我的viewcontroller.m文件的样子

#import "ChatListViewController.h"

@interface ChatListViewController ()

@end

@implementation ChatListViewController

- (id)initWithStyle:(UITableViewStyle)style {
    //self = [super initWithStyle:style];
    self = [super initWithStyle:UITableViewStylePlain];
    if (self) {
        self.parseClassName = kChatRoomClassKey;
        self.paginationEnabled = YES;
        self.pullToRefreshEnabled = YES;
        self.objectsPerPage = 25;
        //[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 65, 0, 0)];
    }
    return self;
}

- (PFQuery *)queryForTable {

    if (![PFUser currentUser]) {
        PFQuery *query = [PFQuery queryWithClassName:self.parseClassName];
        [query setLimit:0];
        return query;
    }

    PFQuery …
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview ios ios7 pfquery

3
推荐指数
1
解决办法
3006
查看次数

解析:当我只有PFUser时,如何使用PFRelation进行查询?

这是我想要做的一个例子.我有当前用户作为PFUser和另一个名为Item的类我有一个名为"所有者"的关系,它是PFUser的关系.我想查询具有关系中当前用户的Item的所有实例.

我看到了相反查询方式的示例,但我没有看到如何获得关系,然后将其过滤到关系上的PFUser匹配.这是一个例子.

https://www.parse.com/questions/inverse-relationship-support

PFObject老师= ... //班级"老师"的PFObject PFRelation studentsRelation = [老师relationforKey:@"学生"]; PFQuery*query = studentsRelation.query; [query findObjectsInBackground:...

对于我的例子,我会这样做......

PFObject item = [PFObject objectWithClassName:@"Item"];
PFRelation relation = [parseObject relationforKey:@"owner"]; // Filter to PFUser? 
[query findObjectsInBackground:...
Run Code Online (Sandbox Code Playgroud)

我可以使用whereKey,但我该怎么用?我是否在objectId上匹配?

[query whereKey:@"objectId" equalTo:user.objectId];
Run Code Online (Sandbox Code Playgroud)

我一直收到错误102:RelatedTo运算符需要一个有效的指针.我的猜测是,因为我从一个空对象开始,它没有起点.Teacher的示例必须以填充的实例开头.我唯一拥有的是PFUser.必须有一种方法来查询Item实例并在它拥有给当前用户的"所有者"关系上对其进行过滤.我无法弄清楚,我还没有找到如何进行此查询的示例.

这个问题也在Parse.com上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser

parse-platform pfrelation pfquery

2
推荐指数
1
解决办法
4774
查看次数

我如何在解析ios中获得AND子句

我使用此链接作为指南,但我可以弄清楚如何使用AND子句进行解析.它只在示例代码中定义OR子句.

如果我要从SQL语句转换它,它看起来像这样......

SELECT * FROM RemittanceTable WHERE beneCode = 'code' AND remittanceAmount = 500.00
Run Code Online (Sandbox Code Playgroud)

例如,在此代码中,我想在读取数据之前检查代码和数量是否正确.但它用OR子句验证

PFQuery *beneCodeQuery = [PFQuery queryWithClassName:@"RemittanceTable"];
[beneCodeQuery whereKey:@"beneCode" containsString:_beneCodeText.text];

PFQuery *amountQuery = [PFQuery queryWithClassName:@"RemittanceTable"];
[amountQuery whereKey:@"remittanceAmount" equalTo:amount];

PFQuery *query = [PFQuery orQueryWithSubqueries:[NSArray arrayWithObjects:beneCodeQuery,amountQuery,nil]];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        for (PFObject *object in objects) {
            NSLog(@"%@", object);

            [self resignAllResponder];
            _paymentDetailsImage.frame = CGRectMake(_paymentDetailsImage.frame.origin.x, _paymentDetailsImage.frame.origin.y, _paymentDetailsImage.frame.size.width, paymentModeOrigHeight);
            _detailsView.alpha = 1;

        }
    }}}];
Run Code Online (Sandbox Code Playgroud)

iphone ios parse-platform pfquery

2
推荐指数
1
解决办法
1920
查看次数

(非原子的,强大的)财产的生命周期如何在iOS中发挥作用?

假设我有一个声明为:@property (nonatomic, strong) NSArray *menuArr; OR 的属性@property (strong) NSArray *menuArr;并设置此属性viewDidLoad.设备"记住"我存储在阵列中的信息需要多长时间?

该属性在viewController中声明并设置,该viewController嵌入在navigationViewController中,该控件本身是TabBarViewController中的第一个视图控制器.换句话说,它是用户看到的第一个视图,然后它们可以远离它并返回.

没有进入关于原子与非原子的辩论我的问题是这个

属性(以任何方式声明)是否在iOS环境中无限生存,或者其寿命受限于诸如时间,其他地方的内存使用,关闭设备等因素


为了避免这是一个"xy问题",这就是为什么我要问:

我正在开发一个应用程序,其中包括分为多个类别的菜单,每个类别中包含多个项目......正如您可能期望的菜单一样.所有菜单项都存储在parse.com上.起初我在每个页面上做一个单独的PFQuery,一个在类别页面上获取类别,当用户选择一个类别时,推送一个新页面,第二个PFQuery获得所选类别中的所有项目.这有效但页面加载需要相当长的时间,有时可能需要10-15秒而且没有真正表明应用程序还没有冻结.

为了解决这个问题,我决定在加载应用程序的第一个视图时运行一个PFQuery,以viewDidLoad获取所有菜单项并将自己排序为包含项目的类别的嵌套数组.然后我将菜单数组存储在viewController的属性中.后来,当我进入菜单时,我有以下内容viewDidLoad:

//get e reference to the first view controller, the one that has the menu array 
FirstViewController *myVC1ref = (FirstViewController *)[[[self.navigationController.tabBarController.viewControllers objectAtIndex:0] viewControllers]  objectAtIndex:0];

//set thisviewController's `menuArr` property to point to the menuArr on the first viewController.

_menuArr=myVC1ref.menuArr;
Run Code Online (Sandbox Code Playgroud)

我的理解是,这会创建一个指向原始数组的指针,并不会实际创建第二个数组(如果我错了,请纠正我).

此方法需要大约10-15秒来加载和排序一次数组,但之后页面之间的导航是在此之后立即更好.

我计划在某些地方进行查询以查看是否有任何菜单项已更改,如果是,则重新下载并对菜单进行排序.

到目前为止,在我的测试中,应用程序似乎记得阵列中的信息一整天都很好,正常无关的手机使用情况但是必须有一些限制吗?

arrays properties objective-c ios pfquery

2
推荐指数
1
解决办法
562
查看次数

Parse.com让附近的用户

我需要使用我的应用程序获取15个最近用户的列表.当前用户的当前位置存储如下:

PFGeoPoint *currentLocation =  [PFGeoPoint geoPointWithLocation:newLocation];
PFUser *currentUser = [PFUser currentUser];
[currentUser setObject:currentLocation forKey:@"location"];
[currentUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
     if (!error)
     {
         NSLog(@"Saved Users Location");
     }
 }];
Run Code Online (Sandbox Code Playgroud)

现在我想通过PFQuery检索附近的用户,如下所示:

- (NSArray *)findUsersNearby:(CLLocation *)location
{

PFGeoPoint *currentLocation =  [PFGeoPoint geoPointWithLocation:location];
PFQuery *locationQuery = [PFQuery queryWithClassName:@"User"];

[locationQuery whereKey:@"location" nearGeoPoint:currentLocation withinKilometers:1.0];
locationQuery.limit = 15;
NSArray *nearbyUsers = [locationQuery findObjects];
return nearbyUsers;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用.我的阵列似乎没有条目.有人可以为我清理一下,如何正确使用查询?

干杯,大卫

(也发布于:https://www.parse.com/questions/pfquery-to-retrieve-users-nearby)

cllocationmanager ios parse-platform pfquery

1
推荐指数
1
解决办法
626
查看次数

在Parse.com中从用户类中删除对象

我正在尝试从imageOneParse.com中的列中删除连接到当前用户的图像.来自用户类.

PFQuery *query = [PFUser query];
[query selectKeys:@[@"imageOne"]];
[query getObjectInBackgroundWithId:[[PFUser currentUser] objectId] block:^(PFObject *object, NSError *error) {
    if (!error) {
        [object deleteInBackground];
    }
}];
Run Code Online (Sandbox Code Playgroud)

我的代码不起作用,控制台记录此错误"User cannot be deleted unless they have been authenticated via logIn or signUp".

我怎样才能解决这个问题?

似乎问题来自于对象(图像)来自用户类的事实,我是对的吗?

ios parse-platform pfquery

1
推荐指数
1
解决办法
2979
查看次数

parse.com cloudcode查询,如何告诉parse只返回表中找到的PFObject的某些列?

我在解析cloudcode上有这个功能:

Parse.Cloud.define("testfunction", function(request, response) {

    var username = request.params.username
    var testObject = Parse.Object.extend('Test');
    var query = new Parse.Query(testObject);
    query.equalTo('username', username);
    // PFObject "Test" in the table has columns A,B and C
    // how do I tell the query that in the final result I send back 
    // in the response I only want filed A?

    query.find({
        success:function(results) {
            response.success(results)
        },
        error:function() {
            response.error('Could not find channels')
        }
    })
});
Run Code Online (Sandbox Code Playgroud)

我不知道如何告诉查询只返回提交的A而不是字段B和C作为从查询返回的任何PFObject的一部分?

谢谢

parse-platform pfquery

1
推荐指数
1
解决办法
1915
查看次数

PFQueryTableViewController错误

新的Parse Sdks是否支持PFQueryTableViewController

因为我一直收到使用未声明类型的错误PFQueryTableViewController.为什么这样?

class CustomTableViewCell : PFQueryTableViewController

ios parse-platform pfquery swift

1
推荐指数
1
解决办法
1734
查看次数

PFQuery按日期

我正在尝试使用PFQuery搜索包含特定日期(没有时间)的所有结果.我似乎无法弄清楚它为什么不起作用.我正在使用的代码如下.

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"YYY-MM-dd"];
 NSString *today;
 today = [dateFormat stringFromDate:[NSDate date]];

 PFQuery *query = [PFQuery queryWithClassName:@"Booking"];

 [query whereKey:@"nextAppointment" equalTo:today];

 [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) { etc etc...
Run Code Online (Sandbox Code Playgroud)

使用Parse网站将字段nextAppointment设置为日期.任何帮助,将不胜感激

ios parse-platform pfquery

1
推荐指数
1
解决办法
1532
查看次数

其中whereKey是指针的PFQuery

我有2个类:Posts类和User类.我一直在尝试查询Posts类,只显示当前用户的帖子.我是这样做的:

[query whereKey:@"user" containedIn:[PFUser currentUser][@"followings"]];
Run Code Online (Sandbox Code Playgroud)

列"followings"是包含当前用户的followId的数组.我的问题似乎在于Posts类中的键@"user"是指向User类的指针并导致此错误:

Error: pointer field user needs a pointer value (Code: 102, Version: 1.2.10)
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?提前致谢.

编辑1:信息添加

在这里,我提供有关上述两个类的详细信息:

  • 帖子课

OBJECTID(字符串)----文本(字符串)----用户(指针)----...

  • 用户类

objectId(string)---- username(string)---- followings(users'objectId数组)----...

arrays objective-c ios parse-platform pfquery

1
推荐指数
1
解决办法
2441
查看次数

使用parse下载图像会导致无法识别的选择器错误

我正在尝试从Parse下载图像,当我完成从解析程序下载所有图像时我的程序崩溃并出现错误:

NSNull getDataInBackgroundWithBlock:progressBlock:]:发送到实例的无法识别的选择器.

我试过添加一些条件,如

if(![object objectForKey:@"goal_image"]) //If it is nil => exit
Run Code Online (Sandbox Code Playgroud)

但它仍在崩溃.这是我的代码:

        PFQuery *query = [PFQuery queryWithClassName:@"Goal"];

        [query getObjectInBackgroundWithId:[object objectId] block:^(PFObject *object, NSError *error) {

            if(!error)
            {
                PFFile * imageFile = [object objectForKey:@"goal_image"];
                if (imageFile) {

                    [imageFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error2) {
                        if (!error2) {

                            NSString  *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Images/Goals/%@",[object objectId]]];
                            [data writeToFile:jpgPath atomically:YES];

                        }
                    } progressBlock:^(int percentDone) {
                        if (percentDone == 100) {
                            NSLog(@"Download Completed");
                        }

                    }];
                }
            }
        }];
Run Code Online (Sandbox Code Playgroud)

objective-c ios parse-platform ios6 pfquery

0
推荐指数
1
解决办法
890
查看次数

findObjectsInBackgroundWithBlock不显示任何结果

我正在尝试使用uisearchbar在parse.com上搜索我的对象并执行'findObjectsInBackgroundWithBlock'.我在输出中得到了正确的结果,但它们没有显示在我的表格中.

我之前没有使用块,我的代码工作,它得到了正确的结果,但移动得非常慢,我收到一个警告,"警告:正在主线程上执行长时间运行的Parse操作"

我以前一直在使用代码:

- (void)filterResults:(NSString *)searchTerm {

[self.searchResults removeAllObjects];

PFQuery *query = [PFQuery queryWithClassName: @"Items"];
[query whereKeyExists:@"itemName"];  
[query whereKeyExists:@"itemDescription"]; 
[query whereKey:@"tags" containsString:searchTerm];

NSArray *results  = [query findObjects];
NSLog(@"%@", results);
NSLog(@"%u", results.count);

[self.searchResults addObjectsFromArray:results];
Run Code Online (Sandbox Code Playgroud)

}

所以现在我正在尝试使用findObjectsInBackgroundWithBlock,我之前没有使用过块,所以这是我需要帮助的地方,这是我的新代码:

- (void)filterResults:(NSString *)searchTerm {

[self.searchResults removeAllObjects];

PFQuery *query = [PFQuery queryWithClassName: @"Items"];

[query whereKey:@"tags" containsString:searchTerm];

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

    NSLog(@"%@", objects);
    NSLog(@"%u", objects.count);
[self.searchResults addObjectsFromArray:objects];}];
Run Code Online (Sandbox Code Playgroud)

这是我的一些代码

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

                      if (tableView == self.tableView) {


                          return self.objects.count;

                      } else {

                          return self.searchResults.count; …
Run Code Online (Sandbox Code Playgroud)

ios parse-platform pfquery

0
推荐指数
1
解决办法
1514
查看次数

混合两个PFQuery结果

我希望得到两个PFQuery结果的混合.在下面的代码中,我得到了两个结果的交集结果(所以用户名和fullName包含的所有用户都有self.searchText),我想要包含所有结果(所以用户名为equals的self.searchText所有用户和所有fullName等于的用户)self.searchText).

PFQuery *query = [PFUser query];
[query whereKey:@"username" containsString:self.searchText];
[query whereKey:@"fullName" containsString:self.searchText];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (error) {
        NSLog(@"%@ %@", error, [error userInfo]);
    } else {
        self.searchResults = [[NSMutableArray alloc] initWithArray:objects];
        NSLog(@"%@", objects);
        [self.tableView reloadData];
    }
}];
Run Code Online (Sandbox Code Playgroud)

objective-c ios parse-platform pfquery

0
推荐指数
1
解决办法
1274
查看次数