我试图在UITableView中为分隔符设置自定义插件.这是我的viewDidLoad代码
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView registerClass:[ChatTableCell class] forCellReuseIdentifier:@"ChatCell"];
    [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 65, 0, 0)];
}
单元格分隔符插图无法正常工作,如图所示.它适用于某些细胞而不适用于其他细胞.我在这做错了什么?
这是我的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 …这是我想要做的一个例子.我有当前用户作为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:...
我可以使用whereKey,但我该怎么用?我是否在objectId上匹配?
[query whereKey:@"objectId" equalTo:user.objectId];
我一直收到错误102:RelatedTo运算符需要一个有效的指针.我的猜测是,因为我从一个空对象开始,它没有起点.Teacher的示例必须以填充的实例开头.我唯一拥有的是PFUser.必须有一种方法来查询Item实例并在它拥有给当前用户的"所有者"关系上对其进行过滤.我无法弄清楚,我还没有找到如何进行此查询的示例.
这个问题也在Parse.com上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser
我使用此链接作为指南,但我可以弄清楚如何使用AND子句进行解析.它只在示例代码中定义OR子句.
如果我要从SQL语句转换它,它看起来像这样......
SELECT * FROM RemittanceTable WHERE beneCode = 'code' AND remittanceAmount = 500.00
例如,在此代码中,我想在读取数据之前检查代码和数量是否正确.但它用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;
        }
    }}}];
假设我有一个声明为:@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;
我的理解是,这会创建一个指向原始数组的指针,并不会实际创建第二个数组(如果我错了,请纠正我).
此方法需要大约10-15秒来加载和排序一次数组,但之后页面之间的导航是在此之后立即更好.
我计划在某些地方进行查询以查看是否有任何菜单项已更改,如果是,则重新下载并对菜单进行排序.
到目前为止,在我的测试中,应用程序似乎记得阵列中的信息一整天都很好,正常无关的手机使用情况但是必须有一些限制吗?
我需要使用我的应用程序获取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");
     }
 }];
现在我想通过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;
}
不幸的是它不起作用.我的阵列似乎没有条目.有人可以为我清理一下,如何正确使用查询?
干杯,大卫
(也发布于:https://www.parse.com/questions/pfquery-to-retrieve-users-nearby)
我正在尝试从imageOneParse.com中的列中删除连接到当前用户的图像.来自用户类.
PFQuery *query = [PFUser query];
[query selectKeys:@[@"imageOne"]];
[query getObjectInBackgroundWithId:[[PFUser currentUser] objectId] block:^(PFObject *object, NSError *error) {
    if (!error) {
        [object deleteInBackground];
    }
}];
我的代码不起作用,控制台记录此错误"User cannot be deleted unless they have been authenticated via logIn or signUp".
我怎样才能解决这个问题?
似乎问题来自于对象(图像)来自用户类的事实,我是对的吗?
我在解析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')
        }
    })
});
我不知道如何告诉查询只返回提交的A而不是字段B和C作为从查询返回的任何PFObject的一部分?
谢谢
新的Parse Sdks是否支持PFQueryTableViewController?
因为我一直收到使用未声明类型的错误PFQueryTableViewController.为什么这样?
class CustomTableViewCell : PFQueryTableViewController
我正在尝试使用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...
使用Parse网站将字段nextAppointment设置为日期.任何帮助,将不胜感激
我有2个类:Posts类和User类.我一直在尝试查询Posts类,只显示当前用户的帖子.我是这样做的:
[query whereKey:@"user" containedIn:[PFUser currentUser][@"followings"]];
列"followings"是包含当前用户的followId的数组.我的问题似乎在于Posts类中的键@"user"是指向User类的指针并导致此错误:
Error: pointer field user needs a pointer value (Code: 102, Version: 1.2.10)
我该怎么办呢?提前致谢.
编辑1:信息添加
在这里,我提供有关上述两个类的详细信息:
OBJECTID(字符串)----文本(字符串)----用户(指针)----...
objectId(string)---- username(string)---- followings(users'objectId数组)----...
我正在尝试从Parse下载图像,当我完成从解析程序下载所有图像时我的程序崩溃并出现错误:
NSNull getDataInBackgroundWithBlock:progressBlock:]:发送到实例的无法识别的选择器.
我试过添加一些条件,如
if(![object objectForKey:@"goal_image"]) //If it is nil => exit
但它仍在崩溃.这是我的代码:
        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");
                        }
                    }];
                }
            }
        }];
我正在尝试使用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];
}
所以现在我正在尝试使用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];}];
这是我的一些代码
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
                      if (tableView == self.tableView) {
                          return self.objects.count;
                      } else {
                          return self.searchResults.count; …我希望得到两个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];
    }
}];
pfquery ×13
ios ×11
parse-platform ×11
objective-c ×5
arrays ×2
ios6 ×1
ios7 ×1
iphone ×1
pfrelation ×1
properties ×1
swift ×1
uitableview ×1