我已将我的项目更新到iOS 9,我的podfile和所有必需的文件,但它不会构建.我悲伤的根源是以下错误消息:
Type arguments cannot be applied to non-parameterized class 'BFTask'
这是唯一显示的错误,但它在两者中都显示多次PFAnalytics.h,可能更重要PFObject.h.
有人能告诉我这意味着什么,请建议一个解决方案?我希望我提供了足够的信息,但如果没有,请告诉我!
代码示例如下:在PFObject.h和中PFAnalytics.h,到处都有以下内容:
(BFTask PF_GENERIC(XXSOMECLASS *)*) someMethod;
Run Code Online (Sandbox Code Playgroud)
抛出错误.这是不是我的代码,它是PFObject.h和PFAnalytics.h以前一样说.抛出错误的函数示例PFObject.h如下
- (BFTask PF_GENERIC(NSNumber *)*)saveInBackground;
- (BFTask PF_GENERIC(NSNumber *)*)saveEventually;
- (BFTask PF_GENERIC(NSNumber *)*)deleteInBackground;
+ (BFTask PF_GENERIC(NSNumber *)*)saveAllInBackground:(PF_NULLABLE NSArray *)objects;
+ (BFTask PF_GENERIC(NSNumber *)*)deleteAllInBackground:(PF_NULLABLE NSArray *)objects;
// .... etc
Run Code Online (Sandbox Code Playgroud)
当点击停止标志时,建议是删除PF_GENERIC(NSNumber*),导致这样的方法
- (BFTask *)xxsomeMethod;
Run Code Online (Sandbox Code Playgroud)
但这并没有帮助,因为它变得更加混乱
更新02:我的内容Podfile:
# Uncomment this line to define a global platform for your …Run Code Online (Sandbox Code Playgroud) 我试图保存一个PFObject具有PFFile属性的.我正在使用新的Local Datastore for iOS,所以我想PFObject用这个saveEventually()方法保存它.
我遇到的问题是该saveEventually()方法似乎不喜欢保存PFFiles.我试着saveEventually()没有PFFile附加任何物体,这很好用.一旦我PFFile重新连接,Xcode会抛出几个断点通知(错误?)但是没有终止应用程序,看起来好像一切顺利 - 但是对Parse数据浏览器的检查确认保存没有通过.
在本地数据存储功能之前,我不相信这种保存是可能的 - 它会抛出"Unable to saveEventually a PFObject with a relation to a new, unsaved PFFile."错误.似乎本地数据存储区功能已修复此问题,因为它在iOS本地数据存储区文档中声明:
"固定PFObject是递归的,就像保存一样,所以你固定的对象所指向的任何对象也都会被固定.当一个对象被固定时,每次通过获取或保存新数据来更新它时,复制到本地数据存储区将自动更新.您根本不需要担心它."
我已将SDK更新到最新版本(v1.6.2).有任何想法吗?
在我的UIViewController我试图查询我的解析服务器,但我不断得到它的返回0,虽然我知道100%这个类确实有对象.有什么想法吗?
PFQuery *query = [PFQuery queryWithClassName:@"General"];
int i;
for (i = 0; i < [follows count]; i++) {
[query whereKey:@"Session" containedIn:follows];
}
query.cachePolicy = kPFCachePolicyCacheThenNetwork;
[query orderByDescending:@"createdAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
// it never gets here...
NSLog(@"OBJECTS%@", objects);
if (!error) {
NSLog(@"Successfully retrieved %lu objects.", (unsigned long)objects.count);
for (PFObject *object in objects) {
NSLog(@"%@", object.objectId);
}
// [self gotoMain];
} else {
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
Run Code Online (Sandbox Code Playgroud)
它告诉我在控制台中成功检索0个对象没有错误.
我正在直接从Parse中提取一系列字典并将它们显示在表格中.所以我真的很想处理我所掌握的数据结构(下面奇怪的结构化词典).
A PFObject是[String : AnyObject?],我希望能够按任意键排序,所以我不知道对象类型,并且某些字典可能缺少密钥.因为在Parse中,如果不给属性赋值,则它根本就不存在.例如:
[
{
"ObjectId" : "1",
"Name" : "Frank",
"Age" : 32
},
{
"ObjectId" : "2",
"Name" : "Bill"
},
{
"ObjectId" : "3",
"Age" : 18
}
{
"ObjectId" : "4",
"Name" : "Susan",
"Age" : 47
}
Run Code Online (Sandbox Code Playgroud)
]
我希望在排序的词典之后始终按顺序排列缺少键的词典.一个例子:
原表:
ObjectId Name Age
1 Frank 32
2 Bill
3 18
4 Susan 47
Run Code Online (Sandbox Code Playgroud)
按名称排序:
ObjectId Name Age
2 Bill
1 Frank 32
4 Susan 47
3 18
Run Code Online (Sandbox Code Playgroud)
由于我对数据模型没有太多控制权,并且它的使用在整个应用程序中受到限制,我更倾向于关注算法解决方案而不是结构化.
我想出了一个方法来做到这一点,但它似乎效率低而且速度慢,我确信有人可以做得更好.
//dataModel …Run Code Online (Sandbox Code Playgroud) 我尝试将我的数据保存到parse.com.我已经预先在parse.com上创建了一个名为'SomeClass'的类.它有一个名为'mySpecialColumn'的列,其数据类型为String.
这是我尝试使用以下代码保存数据的代码:
var groupObject = PFObject(className: "SomeClass")
groupObject.addObject("aaa", forKey: "mySpecialColumn")
groupObject.saveEventually()
Run Code Online (Sandbox Code Playgroud)
如果我运行这个我得到:
错误:密钥mySpecialColumn的无效类型,预期字符串,但得到数组(代码:111,版本:1.6.0)
这就是我在parse.com上的核心外观:

有谁知道我为什么会收到这个错误?我也试图以懒惰的方式,而不是预先创建数据类,只是动态创建它,但然后它创建所有列作为数据类型数组.
我正面临着Parse和iOS的一个非常普遍的问题.
我有一个具有以下结构的类POST:
text(String) Image (PFFile) LikesUsers (Array of String) LikesCount (Int) From (Pointer to User who posted it)如果用户(已登录)喜欢帖子.我只是递增喜欢并将用户的Objectid添加到数组中
例如:User-2喜欢User-1的帖子.
PostObject.incrementKey("Likes")
PostObject.addObject((PFUser.currentUser()?.objectId)!, forKey: "LikesUsers")
PostObject.saveEventually()
Run Code Online (Sandbox Code Playgroud)
问题在这里.我不能保存PostObject,只要它有一个指向另一个用户的指针(比登录)我收到错误:
除非已通过logIn或signUp对用户进行身份验证,否则无法保存用户
那么如何防止保存ParseObject Children("From")
我不想使用CloudCode,我希望保持简单并使用SaveEventually来获得更好的用户体验.
我正在用Parse构建一个聊天应用程序.我有一个"对话"课和一个"消息"课.对话可以有许多消息(一对多)关系.
此外,我正在使用本地数据存储区来缓存对象(使用PFRelation进行对话和消息).一切正常,直到我尝试从服务器获取更新的对话.请注意,我只是在查询对话,因此不会获取新的消息对象(根据Parse的文档可以预期).但令人惊讶的是,我甚至看不到来自本地数据存储区的消息.
有没有人知道将PFRelations正确存储到本地数据存储区的方法?
我正在尝试对 PFObject 子类的子类进行单元测试(使用 XCTest),但是我收到了所有此类子类的警告,这些子类是测试目标的一部分:
Class MySubclassOfSubclassOfPFObject is implemented in both /var/mobile/Containers/Bundle/Application/84C7811F-348E-42EF-9FF4-F243DB669591/MyApp.app/MyApp and /var/mobile/Containers/Data/Application/A84479A8-1ACD-4F7B-B02D-A28CB412CD14/tmp/MyAppTests.xctest/MyAppTests. One of the two will be used. Which one is undefined.
Run Code Online (Sandbox Code Playgroud)
我的 PFUser 子类也出现异常:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to register both ParseUser and ParseUser as the native PFObject subclass of _User. Cannot determine the right class to use because neither inherits from the other.'
Run Code Online (Sandbox Code Playgroud)
我已经通过 cocoapods 安装了 Parse 1.12 并运行了 XCode 7.2。
我的 podfile 看起来像这样:
target 'Watchi' do
use_frameworks!
pod 'Parse' …Run Code Online (Sandbox Code Playgroud) 从Parse Data Browser检索对象时,我无法获取对象属性.这是在我从"@NSManaged var friends"变为"dynamic var friends"之后发生的.甚至"name"在User.logInWithUsernameInBackground块中显示为nil,因为登录成功,这是疯狂的.用户的ACL设置为"公共读取".
用户对象:
class User : PFUser, PFSubclassing {
dynamic var friends:[User]!
dynamic var name:String!
override class func load() {
self.registerSubclass()
}
}
Run Code Online (Sandbox Code Playgroud)
与朋友一起检索用户.println显示零
var query = User.query()
query.includeKey("friends")
query.getObjectInBackgroundWithId(currentUser.objectId) {
(pfObject: PFObject!, error: NSError!) -> Void in
if pfObject != nil {
var user = pfObject as User
var friends = user.friends as [User]
println("friends: \(friends)") //nil
} else {
println(error)
}
}
Run Code Online (Sandbox Code Playgroud)
登录.println显示零
User.logInWithUsernameInBackground(USERNAME, password:PASSWORD) {
(user: PFUser!, error: NSError!) -> Void in …Run Code Online (Sandbox Code Playgroud) 我想创建自定义PFObject类,但它给了我一个非常令人困惑的错误"属性self.photo未在super.init调用时初始化"
这是我的自定义类的代码:
import Foundation
import Parse
class Wish: PFObject, PFSubclassing {
var id: String?
var name: String?
var descriptionWish: String?
var photo: UIImage
var photoThumbnail: UIImage
var amount: Double?
var amountDonated: Int?
static func parseClassName() -> String {
return "Wish"
}
override init() {
super.init()
}
convenience init(id: String?, name: String?, descriptionWish: String?, photo: UIImage, photoThumbnail: UIImage, amount: Double?, amountDonated: Int?) {
self.init()
self.id = id
self.name = name
self.descriptionWish = descriptionWish
self.photo = photo
self.photoThumbnail = photoThumbnail
self.amount = …Run Code Online (Sandbox Code Playgroud) pfobject ×10
ios ×7
swift ×5
objective-c ×2
arrays ×1
bftask ×1
dynamic ×1
parsing ×1
pffile ×1
pfquery ×1
pfrelation ×1
sorting ×1
subclass ×1
unit-testing ×1
xcode ×1