initial
1
Parse.framework/Headers
Symbolic link
@@ -0,0 +1 @@
|
||||
Versions/Current/Headers
|
||||
1
Parse.framework/Parse
Symbolic link
@@ -0,0 +1 @@
|
||||
Versions/Current/Parse
|
||||
1
Parse.framework/Resources
Symbolic link
@@ -0,0 +1 @@
|
||||
Versions/Current/Resources
|
||||
198
Parse.framework/Versions/1.2.13/Headers/PFACL.h
Executable file
@@ -0,0 +1,198 @@
|
||||
// PFACL.h
|
||||
// Copyright 2011 Parse, Inc. All rights reserved.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class PFUser;
|
||||
@class PFRole;
|
||||
|
||||
/*!
|
||||
A PFACL is used to control which users can access or modify a particular
|
||||
object. Each PFObject can have its own PFACL. You can grant
|
||||
read and write permissions separately to specific users, to groups of users
|
||||
that belong to roles, or you can grant permissions to "the public" so that,
|
||||
for example, any user could read a particular object but only a particular
|
||||
set of users could write to that object.
|
||||
*/
|
||||
@interface PFACL : NSObject <NSCopying>
|
||||
|
||||
/** @name Creating an ACL */
|
||||
|
||||
/*!
|
||||
Creates an ACL with no permissions granted.
|
||||
*/
|
||||
+ (PFACL *)ACL;
|
||||
|
||||
/*!
|
||||
Creates an ACL where only the provided user has access.
|
||||
*/
|
||||
+ (PFACL *)ACLWithUser:(PFUser *)user;
|
||||
|
||||
/** @name Controlling Public Access */
|
||||
|
||||
/*!
|
||||
Set whether the public is allowed to read this object.
|
||||
*/
|
||||
- (void)setPublicReadAccess:(BOOL)allowed;
|
||||
|
||||
/*!
|
||||
Gets whether the public is allowed to read this object.
|
||||
*/
|
||||
- (BOOL)getPublicReadAccess;
|
||||
|
||||
/*!
|
||||
Set whether the public is allowed to write this object.
|
||||
*/
|
||||
- (void)setPublicWriteAccess:(BOOL)allowed;
|
||||
|
||||
/*!
|
||||
Gets whether the public is allowed to write this object.
|
||||
*/
|
||||
- (BOOL)getPublicWriteAccess;
|
||||
|
||||
/** @name Controlling Access Per-User */
|
||||
|
||||
/*!
|
||||
Set whether the given user id is allowed to read this object.
|
||||
*/
|
||||
- (void)setReadAccess:(BOOL)allowed forUserId:(NSString *)userId;
|
||||
|
||||
/*!
|
||||
Gets whether the given user id is *explicitly* allowed to read this object.
|
||||
Even if this returns NO, the user may still be able to access it if getPublicReadAccess returns YES
|
||||
or if the user belongs to a role that has access.
|
||||
*/
|
||||
- (BOOL)getReadAccessForUserId:(NSString *)userId;
|
||||
|
||||
/*!
|
||||
Set whether the given user id is allowed to write this object.
|
||||
*/
|
||||
- (void)setWriteAccess:(BOOL)allowed forUserId:(NSString *)userId;
|
||||
|
||||
/*!
|
||||
Gets whether the given user id is *explicitly* allowed to write this object.
|
||||
Even if this returns NO, the user may still be able to write it if getPublicWriteAccess returns YES
|
||||
or if the user belongs to a role that has access.
|
||||
*/
|
||||
- (BOOL)getWriteAccessForUserId:(NSString *)userId;
|
||||
|
||||
/*!
|
||||
Set whether the given user is allowed to read this object.
|
||||
*/
|
||||
- (void)setReadAccess:(BOOL)allowed forUser:(PFUser *)user;
|
||||
|
||||
/*!
|
||||
Gets whether the given user is *explicitly* allowed to read this object.
|
||||
Even if this returns NO, the user may still be able to access it if getPublicReadAccess returns YES
|
||||
or if the user belongs to a role that has access.
|
||||
*/
|
||||
- (BOOL)getReadAccessForUser:(PFUser *)user;
|
||||
|
||||
/*!
|
||||
Set whether the given user is allowed to write this object.
|
||||
*/
|
||||
- (void)setWriteAccess:(BOOL)allowed forUser:(PFUser *)user;
|
||||
|
||||
/*!
|
||||
Gets whether the given user is *explicitly* allowed to write this object.
|
||||
Even if this returns NO, the user may still be able to write it if getPublicWriteAccess returns YES
|
||||
or if the user belongs to a role that has access.
|
||||
*/
|
||||
- (BOOL)getWriteAccessForUser:(PFUser *)user;
|
||||
|
||||
/** @name Controlling Access Per-Role */
|
||||
|
||||
/*!
|
||||
Get whether users belonging to the role with the given name are allowed
|
||||
to read this object. Even if this returns false, the role may still
|
||||
be able to read it if a parent role has read access.
|
||||
|
||||
@param name The name of the role.
|
||||
@return YES if the role has read access. NO otherwise.
|
||||
*/
|
||||
- (BOOL)getReadAccessForRoleWithName:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Set whether users belonging to the role with the given name are allowed
|
||||
to read this object.
|
||||
|
||||
@param name The name of the role.
|
||||
@param allowed Whether the given role can read this object.
|
||||
*/
|
||||
- (void)setReadAccess:(BOOL)allowed forRoleWithName:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Get whether users belonging to the role with the given name are allowed
|
||||
to write this object. Even if this returns false, the role may still
|
||||
be able to write it if a parent role has write access.
|
||||
|
||||
@param name The name of the role.
|
||||
@return YES if the role has read access. NO otherwise.
|
||||
*/
|
||||
- (BOOL)getWriteAccessForRoleWithName:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Set whether users belonging to the role with the given name are allowed
|
||||
to write this object.
|
||||
|
||||
@param name The name of the role.
|
||||
@param allowed Whether the given role can write this object.
|
||||
*/
|
||||
- (void)setWriteAccess:(BOOL)allowed forRoleWithName:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Get whether users belonging to the given role are allowed to read this
|
||||
object. Even if this returns NO, the role may still be able to
|
||||
read it if a parent role has read access. The role must already be saved on
|
||||
the server and its data must have been fetched in order to use this method.
|
||||
|
||||
@param role The name of the role.
|
||||
@return YES if the role has read access. NO otherwise.
|
||||
*/
|
||||
- (BOOL)getReadAccessForRole:(PFRole *)role;
|
||||
|
||||
/*!
|
||||
Set whether users belonging to the given role are allowed to read this
|
||||
object. The role must already be saved on the server and its data must have
|
||||
been fetched in order to use this method.
|
||||
|
||||
@param role The role to assign access.
|
||||
@param allowed Whether the given role can read this object.
|
||||
*/
|
||||
- (void)setReadAccess:(BOOL)allowed forRole:(PFRole *)role;
|
||||
|
||||
/*!
|
||||
Get whether users belonging to the given role are allowed to write this
|
||||
object. Even if this returns NO, the role may still be able to
|
||||
write it if a parent role has write access. The role must already be saved on
|
||||
the server and its data must have been fetched in order to use this method.
|
||||
|
||||
@param role The name of the role.
|
||||
@return YES if the role has write access. NO otherwise.
|
||||
*/
|
||||
- (BOOL)getWriteAccessForRole:(PFRole *)role;
|
||||
|
||||
/*!
|
||||
Set whether users belonging to the given role are allowed to write this
|
||||
object. The role must already be saved on the server and its data must have
|
||||
been fetched in order to use this method.
|
||||
|
||||
@param role The role to assign access.
|
||||
@param allowed Whether the given role can write this object.
|
||||
*/
|
||||
- (void)setWriteAccess:(BOOL)allowed forRole:(PFRole *)role;
|
||||
|
||||
/** @name Setting Access Defaults */
|
||||
|
||||
/*!
|
||||
Sets a default ACL that will be applied to all PFObjects when they are created.
|
||||
@param acl The ACL to use as a template for all PFObjects created after setDefaultACL has been called.
|
||||
This value will be copied and used as a template for the creation of new ACLs, so changes to the
|
||||
instance after setDefaultACL has been called will not be reflected in new PFObjects.
|
||||
@param currentUserAccess If true, the PFACL that is applied to newly-created PFObjects will
|
||||
provide read and write access to the currentUser at the time of creation. If false,
|
||||
the provided ACL will be used without modification. If acl is nil, this value is ignored.
|
||||
*/
|
||||
+ (void)setDefaultACL:(PFACL *)acl withAccessForCurrentUser:(BOOL)currentUserAccess;
|
||||
|
||||
@end
|
||||
73
Parse.framework/Versions/1.2.13/Headers/PFAnalytics.h
Executable file
@@ -0,0 +1,73 @@
|
||||
//
|
||||
// PFAnalytics.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Christine Yen on 1/29/13.
|
||||
// Copyright (c) 2013 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
PFAnalytics provides an interface to Parse's logging and analytics backend.
|
||||
|
||||
Methods will return immediately and cache the request (+ timestamp) to be
|
||||
handled "eventually." That is, the request will be sent immediately if possible
|
||||
or the next time a network connection is available otherwise.
|
||||
*/
|
||||
@interface PFAnalytics : NSObject
|
||||
|
||||
/*!
|
||||
Tracks this application being launched. If this happened as the result of the
|
||||
user opening a push notification, this method sends along information to
|
||||
correlate this open with that push.
|
||||
|
||||
Pass in nil to track a standard "application opened" event.
|
||||
|
||||
@param launchOptions The dictionary indicating the reason the application was
|
||||
launched, if any. This value can be found as a parameter to various
|
||||
UIApplicationDelegate methods, and can be empty or nil.
|
||||
*/
|
||||
+ (void)trackAppOpenedWithLaunchOptions:(NSDictionary *)launchOptions;
|
||||
|
||||
/*!
|
||||
Tracks this application being launched. If this happened as the result of the
|
||||
user opening a push notification, this method sends along information to
|
||||
correlate this open with that push.
|
||||
|
||||
@param userInfo The Remote Notification payload, if any. This value can be
|
||||
found either under UIApplicationLaunchOptionsRemoteNotificationKey on
|
||||
launchOptions, or as a parameter to application:didReceiveRemoteNotification:.
|
||||
This can be empty or nil.
|
||||
*/
|
||||
+ (void)trackAppOpenedWithRemoteNotificationPayload:(NSDictionary *)userInfo;
|
||||
|
||||
/*!
|
||||
Tracks the occurrence of a custom event. Parse will store a data point at the
|
||||
time of invocation with the given event name.
|
||||
|
||||
@param name The name of the custom event to report to Parse as having happened.
|
||||
*/
|
||||
+ (void)trackEvent:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Tracks the occurrence of a custom event with additional dimensions. Parse will
|
||||
store a data point at the time of invocation with the given event name.
|
||||
|
||||
Dimensions will allow segmentation of the occurrences of this custom event.
|
||||
Keys and values should be NSStrings, and will throw otherwise.
|
||||
|
||||
To track a user signup along with additional metadata, consider the following:
|
||||
NSDictionary *dimensions = @{ @"gender": @"m",
|
||||
@"source": @"web",
|
||||
@"dayType": @"weekend" };
|
||||
[PFAnalytics trackEvent:@"signup" dimensions:dimensions];
|
||||
|
||||
There is a default limit of 4 dimensions per event tracked.
|
||||
|
||||
@param name The name of the custom event to report to Parse as having happened.
|
||||
@param dimensions The dictionary of information by which to segment this event.
|
||||
*/
|
||||
+ (void)trackEvent:(NSString *)name dimensions:(NSDictionary *)dimensions;
|
||||
|
||||
@end
|
||||
57
Parse.framework/Versions/1.2.13/Headers/PFAnonymousUtils.h
Executable file
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// PFAnonymousUtils.h
|
||||
// Parse
|
||||
//
|
||||
// Created by David Poll on 3/20/12.
|
||||
// Copyright (c) 2012 Parse, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFUser.h"
|
||||
#import "PFConstants.h"
|
||||
|
||||
/*!
|
||||
Provides utility functions for working with Anonymously logged-in users. Anonymous users have some unique characteristics:
|
||||
<ul>
|
||||
<li>Anonymous users don't need a user name or password.</li>
|
||||
<li>Once logged out, an anonymous user cannot be recovered.</li>
|
||||
<li>When the current user is anonymous, the following methods can be used to switch to a different user or convert the
|
||||
anonymous user into a regular one:
|
||||
<ul>
|
||||
<li>signUp converts an anonymous user to a standard user with the given username and password.
|
||||
Data associated with the anonymous user is retained.</li>
|
||||
<li>logIn switches users without converting the anonymous user. Data associated with the anonymous user will be lost.</li>
|
||||
<li>Service logIn (e.g. Facebook, Twitter) will attempt to convert the anonymous user into a standard user by linking it to the service.
|
||||
If a user already exists that is linked to the service, it will instead switch to the existing user.</li>
|
||||
<li>Service linking (e.g. Facebook, Twitter) will convert the anonymous user into a standard user by linking it to the service.</li>
|
||||
</ul>
|
||||
</ul>
|
||||
*/
|
||||
@interface PFAnonymousUtils : NSObject
|
||||
|
||||
/*! @name Creating an Anonymous User */
|
||||
|
||||
/*!
|
||||
Creates an anonymous user.
|
||||
@param block The block to execute when anonymous user creation is complete. The block should have the following argument signature:
|
||||
(PFUser *user, NSError *error)
|
||||
*/
|
||||
+ (void)logInWithBlock:(PFUserResultBlock)block;
|
||||
|
||||
/*!
|
||||
Creates an anonymous user. The selector for the callback should look like: (PFUser *)user error:(NSError *)error
|
||||
@param target Target object for the selector.
|
||||
@param selector The selector that will be called when the asynchronous request is complete.
|
||||
*/
|
||||
+ (void)logInWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/*! @name Determining Whether a PFUser is Anonymous */
|
||||
|
||||
/*!
|
||||
Whether the user is logged in anonymously.
|
||||
@param user User to check for anonymity. The user must be logged in on this device.
|
||||
@result True if the user is anonymous. False if the user is not the current user or is not anonymous.
|
||||
*/
|
||||
+ (BOOL)isLinkedWithUser:(PFUser *)user;
|
||||
|
||||
@end
|
||||
47
Parse.framework/Versions/1.2.13/Headers/PFCloud.h
Executable file
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// PFCloud.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Shyam Jayaraman on 8/20/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFConstants.h"
|
||||
|
||||
@interface PFCloud : NSObject
|
||||
|
||||
/*!
|
||||
Calls the given cloud function with the parameters passed in.
|
||||
@param function The function name to call.
|
||||
@param parameters The parameters to send to the function.
|
||||
@result The response from the cloud function.
|
||||
*/
|
||||
+ (id)callFunction:(NSString *)function withParameters:(NSDictionary *)parameters;
|
||||
|
||||
/*!
|
||||
Calls the given cloud function with the parameters passed in and sets the error if there is one.
|
||||
@param function The function name to call.
|
||||
@param parameters The parameters to send to the function.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result The response from the cloud function. This result could be a NSDictionary, an NSArray, NSInteger or NSString.
|
||||
*/
|
||||
+ (id)callFunction:(NSString *)function withParameters:(NSDictionary *)parameters error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Calls the given cloud function with the parameters provided asynchronously and calls the given block when it is done.
|
||||
@param function The function name to call.
|
||||
@param parameters The parameters to send to the function.
|
||||
@param block The block to execute. The block should have the following argument signature:(id result, NSError *error).
|
||||
*/
|
||||
+ (void)callFunctionInBackground:(NSString *)function withParameters:(NSDictionary *)parameters block:(PFIdResultBlock)block;
|
||||
|
||||
/*!
|
||||
Calls the given cloud function with the parameters provided asynchronously and runs the callback when it is done.
|
||||
@param function The function name to call.
|
||||
@param parameters The parameters to send to the function.
|
||||
@param target The object to call the selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(id) result error:(NSError *)error. result will be nil if error is set and vice versa.
|
||||
*/
|
||||
+ (void)callFunctionInBackground:(NSString *)function withParameters:(NSDictionary *)parameters target:(id)target selector:(SEL)selector;
|
||||
@end
|
||||
160
Parse.framework/Versions/1.2.13/Headers/PFConstants.h
Executable file
@@ -0,0 +1,160 @@
|
||||
// PFConstants.h
|
||||
// Copyright 2011 Parse, Inc. All rights reserved.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
@class PFObject;
|
||||
@class PFUser;
|
||||
|
||||
// Version
|
||||
#define PARSE_VERSION @"1.2.13"
|
||||
|
||||
extern NSInteger const PARSE_API_VERSION;
|
||||
|
||||
// Platform
|
||||
#define PARSE_IOS_ONLY (TARGET_OS_IPHONE)
|
||||
#define PARSE_OSX_ONLY (TARGET_OS_MAC && !(TARGET_OS_IPHONE))
|
||||
|
||||
extern NSString *const kPFDeviceType;
|
||||
|
||||
#if PARSE_IOS_ONLY
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#import <Cocoa/Cocoa.h>
|
||||
@compatibility_alias UIImage NSImage;
|
||||
@compatibility_alias UIColor NSColor;
|
||||
@compatibility_alias UIView NSView;
|
||||
#endif
|
||||
|
||||
// Server
|
||||
extern NSString *const kPFParseServer;
|
||||
|
||||
// Cache policies
|
||||
typedef enum {
|
||||
kPFCachePolicyIgnoreCache = 0,
|
||||
kPFCachePolicyCacheOnly,
|
||||
kPFCachePolicyNetworkOnly,
|
||||
kPFCachePolicyCacheElseNetwork,
|
||||
kPFCachePolicyNetworkElseCache,
|
||||
kPFCachePolicyCacheThenNetwork
|
||||
} PFCachePolicy;
|
||||
|
||||
// Errors
|
||||
|
||||
/*! @abstract 1: Internal server error. No information available. */
|
||||
extern NSInteger const kPFErrorInternalServer;
|
||||
|
||||
/*! @abstract 100: The connection to the Parse servers failed. */
|
||||
extern NSInteger const kPFErrorConnectionFailed;
|
||||
/*! @abstract 101: Object doesn't exist, or has an incorrect password. */
|
||||
extern NSInteger const kPFErrorObjectNotFound;
|
||||
/*! @abstract 102: You tried to find values matching a datatype that doesn't support exact database matching, like an array or a dictionary. */
|
||||
extern NSInteger const kPFErrorInvalidQuery;
|
||||
/*! @abstract 103: Missing or invalid classname. Classnames are case-sensitive. They must start with a letter, and a-zA-Z0-9_ are the only valid characters. */
|
||||
extern NSInteger const kPFErrorInvalidClassName;
|
||||
/*! @abstract 104: Missing object id. */
|
||||
extern NSInteger const kPFErrorMissingObjectId;
|
||||
/*! @abstract 105: Invalid key name. Keys are case-sensitive. They must start with a letter, and a-zA-Z0-9_ are the only valid characters. */
|
||||
extern NSInteger const kPFErrorInvalidKeyName;
|
||||
/*! @abstract 106: Malformed pointer. Pointers must be arrays of a classname and an object id. */
|
||||
extern NSInteger const kPFErrorInvalidPointer;
|
||||
/*! @abstract 107: Malformed json object. A json dictionary is expected. */
|
||||
extern NSInteger const kPFErrorInvalidJSON;
|
||||
/*! @abstract 108: Tried to access a feature only available internally. */
|
||||
extern NSInteger const kPFErrorCommandUnavailable;
|
||||
/*! @abstract 111: Field set to incorrect type. */
|
||||
extern NSInteger const kPFErrorIncorrectType;
|
||||
/*! @abstract 112: Invalid channel name. A channel name is either an empty string (the broadcast channel) or contains only a-zA-Z0-9_ characters and starts with a letter. */
|
||||
extern NSInteger const kPFErrorInvalidChannelName;
|
||||
/*! @abstract 114: Invalid device token. */
|
||||
extern NSInteger const kPFErrorInvalidDeviceToken;
|
||||
/*! @abstract 115: Push is misconfigured. See details to find out how. */
|
||||
extern NSInteger const kPFErrorPushMisconfigured;
|
||||
/*! @abstract 116: The object is too large. */
|
||||
extern NSInteger const kPFErrorObjectTooLarge;
|
||||
/*! @abstract 119: That operation isn't allowed for clients. */
|
||||
extern NSInteger const kPFErrorOperationForbidden;
|
||||
/*! @abstract 120: The results were not found in the cache. */
|
||||
extern NSInteger const kPFErrorCacheMiss;
|
||||
/*! @abstract 121: Keys in NSDictionary values may not include '$' or '.'. */
|
||||
extern NSInteger const kPFErrorInvalidNestedKey;
|
||||
/*! @abstract 122: Invalid file name. A file name contains only a-zA-Z0-9_. characters and is between 1 and 36 characters. */
|
||||
extern NSInteger const kPFErrorInvalidFileName;
|
||||
/*! @abstract 123: Invalid ACL. An ACL with an invalid format was saved. This should not happen if you use PFACL. */
|
||||
extern NSInteger const kPFErrorInvalidACL;
|
||||
/*! @abstract 124: The request timed out on the server. Typically this indicates the request is too expensive. */
|
||||
extern NSInteger const kPFErrorTimeout;
|
||||
/*! @abstract 125: The email address was invalid. */
|
||||
extern NSInteger const kPFErrorInvalidEmailAddress;
|
||||
/*! @abstract 137: A unique field was given a value that is already taken. */
|
||||
extern NSInteger const kPFErrorDuplicateValue;
|
||||
/*! @abstract 139: Role's name is invalid. */
|
||||
extern NSInteger const kPFErrorInvalidRoleName;
|
||||
/*! @abstract 140: Exceeded an application quota. Upgrade to resolve. */
|
||||
extern NSInteger const kPFErrorExceededQuota;
|
||||
/*! @abstract 141: Cloud Code script had an error. */
|
||||
extern NSInteger const kPFScriptError;
|
||||
/*! @abstract 142: Cloud Code validation failed. */
|
||||
extern NSInteger const kPFValidationError;
|
||||
/*! @abstract 143: Product purchase receipt is missing */
|
||||
extern NSInteger const kPFErrorReceiptMissing;
|
||||
/*! @abstract 144: Product purchase receipt is invalid */
|
||||
extern NSInteger const kPFErrorInvalidPurchaseReceipt;
|
||||
/*! @abstract 145: Payment is disabled on this device */
|
||||
extern NSInteger const kPFErrorPaymentDisabled;
|
||||
/*! @abstract 146: The product identifier is invalid */
|
||||
extern NSInteger const kPFErrorInvalidProductIdentifier;
|
||||
/*! @abstract 147: The product is not found in the App Store */
|
||||
extern NSInteger const kPFErrorProductNotFoundInAppStore;
|
||||
/*! @abstract 148: The Apple server response is not valid */
|
||||
extern NSInteger const kPFErrorInvalidServerResponse;
|
||||
/*! @abstract 149: Product fails to download due to file system error */
|
||||
extern NSInteger const kPFErrorProductDownloadFileSystemFailure;
|
||||
/*! @abstract 150: Fail to convert data to image. */
|
||||
extern NSInteger const kPFErrorInvalidImageData;
|
||||
/*! @abstract 151: Unsaved file. */
|
||||
extern NSInteger const kPFErrorUnsavedFile;
|
||||
/*! @abstract 153: Fail to delete file. */
|
||||
extern NSInteger const kPFErrorFileDeleteFailure;
|
||||
|
||||
/*! @abstract 200: Username is missing or empty */
|
||||
extern NSInteger const kPFErrorUsernameMissing;
|
||||
/*! @abstract 201: Password is missing or empty */
|
||||
extern NSInteger const kPFErrorUserPasswordMissing;
|
||||
/*! @abstract 202: Username has already been taken */
|
||||
extern NSInteger const kPFErrorUsernameTaken;
|
||||
/*! @abstract 203: Email has already been taken */
|
||||
extern NSInteger const kPFErrorUserEmailTaken;
|
||||
/*! @abstract 204: The email is missing, and must be specified */
|
||||
extern NSInteger const kPFErrorUserEmailMissing;
|
||||
/*! @abstract 205: A user with the specified email was not found */
|
||||
extern NSInteger const kPFErrorUserWithEmailNotFound;
|
||||
/*! @abstract 206: The user cannot be altered by a client without the session. */
|
||||
extern NSInteger const kPFErrorUserCannotBeAlteredWithoutSession;
|
||||
/*! @abstract 207: Users can only be created through sign up */
|
||||
extern NSInteger const kPFErrorUserCanOnlyBeCreatedThroughSignUp;
|
||||
/*! @abstract 208: An existing Facebook account already linked to another user. */
|
||||
extern NSInteger const kPFErrorFacebookAccountAlreadyLinked;
|
||||
/*! @abstract 208: An existing account already linked to another user. */
|
||||
extern NSInteger const kPFErrorAccountAlreadyLinked;
|
||||
/*! @abstract 209: User ID mismatch */
|
||||
extern NSInteger const kPFErrorUserIdMismatch;
|
||||
/*! @abstract 250: Facebook id missing from request */
|
||||
extern NSInteger const kPFErrorFacebookIdMissing;
|
||||
/*! @abstract 250: Linked id missing from request */
|
||||
extern NSInteger const kPFErrorLinkedIdMissing;
|
||||
/*! @abstract 251: Invalid Facebook session */
|
||||
extern NSInteger const kPFErrorFacebookInvalidSession;
|
||||
/*! @abstract 251: Invalid linked session */
|
||||
extern NSInteger const kPFErrorInvalidLinkedSession;
|
||||
|
||||
typedef void (^PFBooleanResultBlock)(BOOL succeeded, NSError *error);
|
||||
typedef void (^PFIntegerResultBlock)(int number, NSError *error);
|
||||
typedef void (^PFArrayResultBlock)(NSArray *objects, NSError *error);
|
||||
typedef void (^PFObjectResultBlock)(PFObject *object, NSError *error);
|
||||
typedef void (^PFSetResultBlock)(NSSet *channels, NSError *error);
|
||||
typedef void (^PFUserResultBlock)(PFUser *user, NSError *error);
|
||||
typedef void (^PFDataResultBlock)(NSData *data, NSError *error);
|
||||
typedef void (^PFDataStreamResultBlock)(NSInputStream *stream, NSError *error);
|
||||
typedef void (^PFStringResultBlock)(NSString *string, NSError *error);
|
||||
typedef void (^PFIdResultBlock)(id object, NSError *error);
|
||||
typedef void (^PFProgressBlock)(int percentDone);
|
||||
260
Parse.framework/Versions/1.2.13/Headers/PFFacebookUtils.h
Executable file
@@ -0,0 +1,260 @@
|
||||
//
|
||||
// PFFacebookUtils.h
|
||||
// Copyright (c) 2012 Parse, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <FacebookSDK/FBSession.h>
|
||||
|
||||
#import "PFUser.h"
|
||||
#import "PFConstants.h"
|
||||
|
||||
/*!
|
||||
Provides utility functions for working with Facebook in a Parse application.
|
||||
|
||||
This class is currently for iOS only.
|
||||
*/
|
||||
@interface PFFacebookUtils : NSObject
|
||||
|
||||
/** @name Interacting With Facebook */
|
||||
|
||||
/*!
|
||||
Gets the Facebook session for the current user.
|
||||
*/
|
||||
+ (FBSession *)session;
|
||||
|
||||
/*!
|
||||
Deprecated. Please call [PFFacebookUtils initializeFacebook] instead.
|
||||
*/
|
||||
+ (void)initializeWithApplicationId:(NSString *)appId __attribute__ ((deprecated));
|
||||
|
||||
/*!
|
||||
Deprecated. Please call [PFFacebookUtils initializeFacebookWithUrlSchemeSuffix:] instead.
|
||||
*/
|
||||
+ (void)initializeWithApplicationId:(NSString *)appId
|
||||
urlSchemeSuffix:(NSString *)urlSchemeSuffix __attribute__ ((deprecated));
|
||||
|
||||
/*!
|
||||
Initializes the Facebook singleton. You must invoke this in order to use the Facebook functionality in Parse.
|
||||
You must provide your Facebook application ID as the value for FacebookAppID in your bundle's plist file as
|
||||
described here: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/
|
||||
*/
|
||||
+ (void)initializeFacebook;
|
||||
|
||||
/*!
|
||||
Initializes the Facebook singleton. You must invoke this in order to use the Facebook functionality in Parse.
|
||||
You must provide your Facebook application ID as the value for FacebookAppID in your bundle's plist file as
|
||||
described here: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/
|
||||
@param urlSchemeSuffix The URL suffix for this application - used when multiple applications with the same
|
||||
Facebook application ID may be on the same device.
|
||||
*/
|
||||
+ (void)initializeFacebookWithUrlShemeSuffix:(NSString *)urlSchemeSuffix;
|
||||
|
||||
/*!
|
||||
Whether the user has their account linked to Facebook.
|
||||
@param user User to check for a facebook link. The user must be logged in on this device.
|
||||
@result True if the user has their account linked to Facebook.
|
||||
*/
|
||||
+ (BOOL)isLinkedWithUser:(PFUser *)user;
|
||||
|
||||
/** @name Logging In & Creating Facebook-Linked Users */
|
||||
|
||||
/*!
|
||||
Logs in a user using Facebook. This method delegates to the Facebook SDK to authenticate
|
||||
the user, and then automatically logs in (or creates, in the case where it is a new user)
|
||||
a PFUser.
|
||||
@param permissions The permissions required for Facebook log in. This passed to the authorize method on
|
||||
the Facebook instance.
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(PFUser *user, NSError *error)
|
||||
*/
|
||||
+ (void)logInWithPermissions:(NSArray *)permissions block:(PFUserResultBlock)block;
|
||||
|
||||
/*!
|
||||
Logs in a user using Facebook. This method delegates to the Facebook SDK to authenticate
|
||||
the user, and then automatically logs in (or creates, in the case where it is a new user)
|
||||
a PFUser. The selector for the callback should look like: (PFUser *)user error:(NSError **)error
|
||||
@param permissions The permissions required for Facebook log in. This passed to the authorize method on
|
||||
the Facebook instance.
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchronous request is complete.
|
||||
*/
|
||||
+ (void)logInWithPermissions:(NSArray *)permissions target:(id)target selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Logs in a user using Facebook. Allows you to handle user login to Facebook, then provide authentication
|
||||
data to log in (or create, in the case where it is a new user) the PFUser.
|
||||
@param facebookId The id of the Facebook user being linked
|
||||
@param accessToken The access token for the user's session
|
||||
@param expirationDate The expiration date for the access token
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(PFUser *user, NSError *error)
|
||||
*/
|
||||
+ (void)logInWithFacebookId:(NSString *)facebookId
|
||||
accessToken:(NSString *)accessToken
|
||||
expirationDate:(NSDate *)expirationDate
|
||||
block:(PFUserResultBlock)block;
|
||||
|
||||
/*!
|
||||
Logs in a user using Facebook. Allows you to handle user login to Facebook, then provide authentication
|
||||
data to log in (or create, in the case where it is a new user) the PFUser.
|
||||
The selector for the callback should look like: (PFUser *)user error:(NSError *)error
|
||||
@param facebookId The id of the Facebook user being linked
|
||||
@param accessToken The access token for the user's session
|
||||
@param expirationDate The expiration date for the access token
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchronous request is complete
|
||||
*/
|
||||
+ (void)logInWithFacebookId:(NSString *)facebookId
|
||||
accessToken:(NSString *)accessToken
|
||||
expirationDate:(NSDate *)expirationDate
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/** @name Linking Users with Facebook */
|
||||
|
||||
/*!
|
||||
Links Facebook to an existing PFUser. This method delegates to the Facebook SDK to authenticate
|
||||
the user, and then automatically links the account to the PFUser.
|
||||
@param user User to link to Facebook.
|
||||
@param permissions The permissions required for Facebook log in. This passed to the authorize method on
|
||||
the Facebook instance.
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user permissions:(NSArray *)permissions;
|
||||
|
||||
/*!
|
||||
Links Facebook to an existing PFUser. This method delegates to the Facebook SDK to authenticate
|
||||
the user, and then automatically links the account to the PFUser.
|
||||
@param user User to link to Facebook.
|
||||
@param permissions The permissions required for Facebook log in. This passed to the authorize method on
|
||||
the Facebook instance.
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(BOOL *success, NSError *error)
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user permissions:(NSArray *)permissions block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Links Facebook to an existing PFUser. This method delegates to the Facebook SDK to authenticate
|
||||
the user, and then automatically links the account to the PFUser.
|
||||
The selector for the callback should look like: (NSNumber *)result error:(NSError *)error
|
||||
@param user User to link to Facebook.
|
||||
@param permissions The permissions required for Facebook log in. This passed to the authorize method on
|
||||
the Facebook instance.
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchronous request is complete.
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user permissions:(NSArray *)permissions target:(id)target selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Links Facebook to an existing PFUser. Allows you to handle user login to Facebook, then provide authentication
|
||||
data to link the account to the PFUser.
|
||||
@param user User to link to Facebook.
|
||||
@param facebookId The id of the Facebook user being linked
|
||||
@param accessToken The access token for the user's session
|
||||
@param expirationDate The expiration date for the access token
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(BOOL *success, NSError *error)
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user
|
||||
facebookId:(NSString *)facebookId
|
||||
accessToken:(NSString *)accessToken
|
||||
expirationDate:(NSDate *)expirationDate
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Links Facebook to an existing PFUser. Allows you to handle user login to Facebook, then provide authentication
|
||||
data to link the account to the PFUser.
|
||||
The selector for the callback should look like: (NSNumber *)result error:(NSError *)error
|
||||
@param user User to link to Facebook.
|
||||
@param facebookId The id of the Facebook user being linked
|
||||
@param accessToken The access token for the user's session
|
||||
@param expirationDate The expiration date for the access token
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchronous request is complete
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user
|
||||
facebookId:(NSString *)facebookId
|
||||
accessToken:(NSString *)accessToken
|
||||
expirationDate:(NSDate *)expirationDate
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/** @name Unlinking Users from Facebook */
|
||||
|
||||
/*!
|
||||
Unlinks the PFUser from a Facebook account.
|
||||
@param user User to unlink from Facebook.
|
||||
@result Returns true if the unlink was successful.
|
||||
*/
|
||||
+ (BOOL)unlinkUser:(PFUser *)user;
|
||||
|
||||
/*!
|
||||
Unlinks the PFUser from a Facebook account.
|
||||
@param user User to unlink from Facebook.
|
||||
@param error Error object to set on error.
|
||||
@result Returns true if the unlink was successful.
|
||||
*/
|
||||
+ (BOOL)unlinkUser:(PFUser *)user error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to unlink a user from a Facebook account.
|
||||
@param user User to unlink from Facebook.
|
||||
*/
|
||||
+ (void)unlinkUserInBackground:(PFUser *)user;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to unlink a user from a Facebook account.
|
||||
@param user User to unlink from Facebook.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)unlinkUserInBackground:(PFUser *)user block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to unlink a user from a Facebook account.
|
||||
@param user User to unlink from Facebook
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchronous request is complete.
|
||||
*/
|
||||
+ (void)unlinkUserInBackground:(PFUser *)user target:(id)target selector:(SEL)selector;
|
||||
|
||||
/** @name Obtaining new permissions */
|
||||
|
||||
/*!
|
||||
Requests new Facebook publish permissions for the given user. This may prompt the user to
|
||||
reauthorize the application. The user will be saved as part of this operation.
|
||||
@param user User to request new permissions for. The user must be linked to Facebook.
|
||||
@param permissions The new publishing permissions to request.
|
||||
@param audience The default audience for publishing permissions to request.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)reauthorizeUser:(PFUser *)user
|
||||
withPublishPermissions:(NSArray *)permissions
|
||||
audience:(FBSessionDefaultAudience)audience
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Requests new Facebook publish permissions for the given user. This may prompt the user to
|
||||
reauthorize the application. The user will be saved as part of this operation.
|
||||
@param user User to request new permissions for. The user must be linked to Facebook.
|
||||
@param permissions The new publishing permissions to request.
|
||||
@param audience The default audience for publishing permissions to request.
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchronous request is complete.
|
||||
*/
|
||||
+ (void)reauthorizeUser:(PFUser *)user
|
||||
withPublishPermissions:(NSArray *)permissions
|
||||
audience:(FBSessionDefaultAudience)audience
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/** @name Delegating URL Actions */
|
||||
|
||||
/*!
|
||||
Handles URLs being opened by your AppDelegate. Invoke and return this from application:handleOpenURL:
|
||||
or application:openURL:sourceApplication:annotation in your AppDelegate.
|
||||
@param url URL being opened by your application.
|
||||
@result True if Facebook will handle this URL.
|
||||
*/
|
||||
+ (BOOL)handleOpenURL:(NSURL *)url;
|
||||
|
||||
@end
|
||||
191
Parse.framework/Versions/1.2.13/Headers/PFFile.h
Executable file
@@ -0,0 +1,191 @@
|
||||
//
|
||||
// PFFile.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Ilya Sukhar on 10/11/11.
|
||||
// Copyright 2011 Ping Labs, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFConstants.h"
|
||||
|
||||
/*!
|
||||
A file of binary data stored on the Parse servers. This can be a image, video, or anything else
|
||||
that an application needs to reference in a non-relational way.
|
||||
*/
|
||||
@interface PFFile : NSObject
|
||||
|
||||
/** @name Creating a PFFile */
|
||||
|
||||
/*!
|
||||
Creates a file with given data. A name will be assigned to it by the server.
|
||||
@param data The contents of the new PFFile.
|
||||
@result A PFFile.
|
||||
*/
|
||||
+ (id)fileWithData:(NSData *)data;
|
||||
|
||||
/*!
|
||||
Creates a file with given data and name.
|
||||
@param name The name of the new PFFile.
|
||||
@param data The contents of hte new PFFile.
|
||||
@result A PFFile.
|
||||
*/
|
||||
+ (id)fileWithName:(NSString *)name data:(NSData *)data;
|
||||
|
||||
/*!
|
||||
Creates a file with the contents of another file.
|
||||
@param name The name of the new PFFile
|
||||
@param path The path to the file that will be uploaded to Parse
|
||||
*/
|
||||
+ (id)fileWithName:(NSString *)name
|
||||
contentsAtPath:(NSString *)path;
|
||||
|
||||
/*!
|
||||
The name of the file.
|
||||
*/
|
||||
@property (assign, readonly) NSString *name;
|
||||
|
||||
/*!
|
||||
The url of the file.
|
||||
*/
|
||||
@property (assign, readonly) NSString *url;
|
||||
|
||||
/** @name Storing Data with Parse */
|
||||
|
||||
/*!
|
||||
Whether the file has been uploaded for the first time.
|
||||
*/
|
||||
@property (readonly) BOOL isDirty;
|
||||
|
||||
/*!
|
||||
Saves the file.
|
||||
@result Returns whether the save succeeded.
|
||||
*/
|
||||
- (BOOL)save;
|
||||
|
||||
/*!
|
||||
Saves the file and sets an error if it occurs.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the save succeeded.
|
||||
*/
|
||||
- (BOOL)save:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Saves the file asynchronously.
|
||||
*/
|
||||
- (void)saveInBackground;
|
||||
|
||||
/*!
|
||||
Saves the file asynchronously and executes the given block.
|
||||
@param block The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
- (void)saveInBackgroundWithBlock:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Saves the file asynchronously and executes the given resultBlock. Executes the progressBlock periodically with the percent
|
||||
progress. progressBlock will get called with 100 before resultBlock is called.
|
||||
@param block The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
@param progressBlock The block should have the following argument signature: (int percentDone)
|
||||
*/
|
||||
- (void)saveInBackgroundWithBlock:(PFBooleanResultBlock)block
|
||||
progressBlock:(PFProgressBlock)progressBlock;
|
||||
|
||||
/*!
|
||||
Saves the file asynchronously and calls the given callback.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
- (void)saveInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/** @name Getting Data from Parse */
|
||||
|
||||
/*!
|
||||
Whether the data is available in memory or needs to be downloaded.
|
||||
*/
|
||||
@property (readonly) BOOL isDataAvailable;
|
||||
|
||||
/*!
|
||||
Gets the data from cache if available or fetches its contents from the Parse
|
||||
servers.
|
||||
@result The data. Returns nil if there was an error in fetching.
|
||||
*/
|
||||
- (NSData *)getData;
|
||||
|
||||
/*!
|
||||
This method is like getData but avoids ever holding the entire PFFile's
|
||||
contents in memory at once. This can help applications with many large PFFiles
|
||||
avoid memory warnings.
|
||||
@result A stream containing the data. Returns nil if there was an error in
|
||||
fetching.
|
||||
*/
|
||||
- (NSInputStream *)getDataStream;
|
||||
|
||||
/*!
|
||||
Gets the data from cache if available or fetches its contents from the Parse
|
||||
servers. Sets an error if it occurs.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result The data. Returns nil if there was an error in fetching.
|
||||
*/
|
||||
- (NSData *)getData:(NSError **)error;
|
||||
|
||||
/*!
|
||||
This method is like getData: but avoids ever holding the entire PFFile's
|
||||
contents in memory at once. This can help applications with many large PFFiles
|
||||
avoid memory warnings. Sets an error if it occurs.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result A stream containing the data. Returns nil if there was an error in
|
||||
fetching.
|
||||
*/
|
||||
- (NSInputStream *)getDataStream:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Asynchronously gets the data from cache if available or fetches its contents
|
||||
from the Parse servers. Executes the given block.
|
||||
@param block The block should have the following argument signature: (NSData *result, NSError *error)
|
||||
*/
|
||||
- (void)getDataInBackgroundWithBlock:(PFDataResultBlock)block;
|
||||
|
||||
/*!
|
||||
This method is like getDataInBackgroundWithBlock: but avoids ever holding the
|
||||
entire PFFile's contents in memory at once. This can help applications with
|
||||
many large PFFiles avoid memory warnings.
|
||||
@param block The block should have the following argument signature: (NSInputStream *result, NSError *error)
|
||||
*/
|
||||
- (void)getDataStreamInBackgroundWithBlock:(PFDataStreamResultBlock)block;
|
||||
|
||||
/*!
|
||||
Asynchronously gets the data from cache if available or fetches its contents
|
||||
from the Parse servers. Executes the resultBlock upon
|
||||
completion or error. Executes the progressBlock periodically with the percent progress. progressBlock will get called with 100 before resultBlock is called.
|
||||
@param resultBlock The block should have the following argument signature: (NSData *result, NSError *error)
|
||||
@param progressBlock The block should have the following argument signature: (int percentDone)
|
||||
*/
|
||||
- (void)getDataInBackgroundWithBlock:(PFDataResultBlock)resultBlock
|
||||
progressBlock:(PFProgressBlock)progressBlock;
|
||||
|
||||
/*!
|
||||
This method is like getDataInBackgroundWithBlock:progressBlock: but avoids ever
|
||||
holding the entire PFFile's contents in memory at once. This can help
|
||||
applications with many large PFFiles avoid memory warnings.
|
||||
@param resultBlock The block should have the following argument signature: (NSInputStream *result, NSError *error)
|
||||
@param progressBlock The block should have the following argument signature: (int percentDone)
|
||||
*/
|
||||
- (void)getDataStreamInBackgroundWithBlock:(PFDataStreamResultBlock)resultBlock
|
||||
progressBlock:(PFProgressBlock)progressBlock;
|
||||
|
||||
/*!
|
||||
Asynchronously gets the data from cache if available or fetches its contents
|
||||
from the Parse servers.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSData *)result error:(NSError *)error. error will be nil on success and set if there was an error.
|
||||
*/
|
||||
- (void)getDataInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/** @name Interrupting a Transfer */
|
||||
|
||||
/*!
|
||||
Cancels the current request (whether upload or download of file data).
|
||||
*/
|
||||
- (void)cancel;
|
||||
|
||||
@end
|
||||
85
Parse.framework/Versions/1.2.13/Headers/PFGeoPoint.h
Executable file
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// PFGeoPoint.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Henele Adams on 12/1/11.
|
||||
// Copyright (c) 2011 Parse, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreLocation/CoreLocation.h>
|
||||
|
||||
/*!
|
||||
Object which may be used to embed a latitude / longitude point as the value for a key in a PFObject.
|
||||
PFObjects with a PFGeoPoint field may be queried in a geospatial manner using PFQuery's whereKey:nearGeoPoint:.
|
||||
|
||||
This is also used as a point specifier for whereKey:nearGeoPoint: queries.
|
||||
|
||||
Currently, object classes may only have one key associated with a GeoPoint type.
|
||||
*/
|
||||
|
||||
@interface PFGeoPoint : NSObject<NSCopying>
|
||||
|
||||
/** @name Creating a PFGeoPoint */
|
||||
/*!
|
||||
Create a PFGeoPoint object. Latitude and longitude are set to 0.0.
|
||||
@result Returns a new PFGeoPoint.
|
||||
*/
|
||||
+ (PFGeoPoint *)geoPoint;
|
||||
|
||||
/*!
|
||||
Creates a new PFGeoPoint object for the given CLLocation, set to the location's
|
||||
coordinates.
|
||||
@param location CLLocation object, with set latitude and longitude.
|
||||
@result Returns a new PFGeoPoint at specified location.
|
||||
*/
|
||||
+ (PFGeoPoint *)geoPointWithLocation:(CLLocation *)location;
|
||||
|
||||
/*!
|
||||
Creates a new PFGeoPoint object with the specified latitude and longitude.
|
||||
@param latitude Latitude of point in degrees.
|
||||
@param longitude Longitude of point in degrees.
|
||||
@result New point object with specified latitude and longitude.
|
||||
*/
|
||||
+ (PFGeoPoint *)geoPointWithLatitude:(double)latitude longitude:(double)longitude;
|
||||
|
||||
/*!
|
||||
Fetches the user's current location and returns a new PFGeoPoint object via the
|
||||
provided block.
|
||||
@param geoPointHandler A block which takes the newly created PFGeoPoint as an
|
||||
argument.
|
||||
*/
|
||||
+ (void)geoPointForCurrentLocationInBackground:(void(^)(PFGeoPoint *geoPoint, NSError *error))geoPointHandler;
|
||||
|
||||
/** @name Controlling Position */
|
||||
|
||||
/// Latitude of point in degrees. Valid range (-90.0, 90.0).
|
||||
@property (nonatomic) double latitude;
|
||||
/// Longitude of point in degrees. Valid range (-180.0, 180.0).
|
||||
@property (nonatomic) double longitude;
|
||||
|
||||
/** @name Calculating Distance */
|
||||
|
||||
/*!
|
||||
Get distance in radians from this point to specified point.
|
||||
@param point PFGeoPoint location of other point.
|
||||
@result distance in radians
|
||||
*/
|
||||
- (double)distanceInRadiansTo:(PFGeoPoint*)point;
|
||||
|
||||
/*!
|
||||
Get distance in miles from this point to specified point.
|
||||
@param point PFGeoPoint location of other point.
|
||||
@result distance in miles
|
||||
*/
|
||||
- (double)distanceInMilesTo:(PFGeoPoint*)point;
|
||||
|
||||
/*!
|
||||
Get distance in kilometers from this point to specified point.
|
||||
@param point PFGeoPoint location of other point.
|
||||
@result distance in kilometers
|
||||
*/
|
||||
- (double)distanceInKilometersTo:(PFGeoPoint*)point;
|
||||
|
||||
|
||||
@end
|
||||
32
Parse.framework/Versions/1.2.13/Headers/PFImageView.h
Executable file
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// PFImageView.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Qian Wang on 5/16/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "PFFile.h"
|
||||
|
||||
/*!
|
||||
An image view that downloads and displays remote image stored on Parse's server.
|
||||
*/
|
||||
@interface PFImageView : UIImageView
|
||||
|
||||
/// The remote file on Parse's server that stores the image.
|
||||
/// Note that the download does not start until loadInBackground: is called.
|
||||
@property (nonatomic, retain) PFFile *file;
|
||||
|
||||
/*!
|
||||
Initiate downloading of the remote image. Once the download completes, the remote image will be displayed.
|
||||
*/
|
||||
- (void)loadInBackground;
|
||||
|
||||
/*!
|
||||
Initiate downloading of the remote image. Once the download completes, the remote image will be displayed.
|
||||
@param completion the completion block.
|
||||
*/
|
||||
- (void)loadInBackground:(void (^)(UIImage *image, NSError *error))completion;
|
||||
|
||||
@end
|
||||
86
Parse.framework/Versions/1.2.13/Headers/PFInstallation.h
Executable file
@@ -0,0 +1,86 @@
|
||||
//
|
||||
// PFInstallation.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Brian Jacokes on 6/4/12.
|
||||
// Copyright (c) 2012 Parse, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFObject.h"
|
||||
#import "PFSubclassing.h"
|
||||
|
||||
/*!
|
||||
A Parse Framework Installation Object that is a local representation of an
|
||||
installation persisted to the Parse cloud. This class is a subclass of a
|
||||
PFObject, and retains the same functionality of a PFObject, but also extends
|
||||
it with installation-specific fields and related immutability and validity
|
||||
checks.
|
||||
|
||||
A valid PFInstallation can only be instantiated via
|
||||
[PFInstallation currentInstallation] because the required identifier fields
|
||||
are readonly. The timeZone and badge fields are also readonly properties which
|
||||
are automatically updated to match the device's time zone and application badge
|
||||
when the PFInstallation is saved, thus these fields might not reflect the
|
||||
latest device state if the installation has not recently been saved.
|
||||
|
||||
PFInstallation objects which have a valid deviceToken and are saved to
|
||||
the Parse cloud can be used to target push notifications.
|
||||
|
||||
This class is currently for iOS only. There is no PFInstallation for Parse
|
||||
applications running on OS X, because they cannot receive push notifications.
|
||||
*/
|
||||
|
||||
@interface PFInstallation : PFObject<PFSubclassing>
|
||||
|
||||
/*! The name of the Installation class in the REST API. This is a required
|
||||
* PFSubclassing method */
|
||||
+ (NSString *)parseClassName;
|
||||
|
||||
/** @name Targeting Installations */
|
||||
|
||||
/*!
|
||||
Creates a query for PFInstallation objects. The resulting query can only
|
||||
be used for targeting a PFPush. Calling find methods on the resulting query
|
||||
will raise an exception.
|
||||
*/
|
||||
+ (PFQuery *)query;
|
||||
|
||||
/** @name Accessing the Current Installation */
|
||||
|
||||
/*!
|
||||
Gets the currently-running installation from disk and returns an instance of
|
||||
it. If this installation is not stored on disk, returns a PFInstallation
|
||||
with deviceType and installationId fields set to those of the
|
||||
current installation.
|
||||
@result Returns a PFInstallation that represents the currently-running
|
||||
installation.
|
||||
*/
|
||||
+ (instancetype)currentInstallation;
|
||||
|
||||
/*!
|
||||
Sets the device token string property from an NSData-encoded token.
|
||||
*/
|
||||
- (void)setDeviceTokenFromData:(NSData *)deviceTokenData;
|
||||
|
||||
/** @name Properties */
|
||||
|
||||
/// The device type for the PFInstallation.
|
||||
@property (nonatomic, readonly, retain) NSString *deviceType;
|
||||
|
||||
/// The installationId for the PFInstallation.
|
||||
@property (nonatomic, readonly, retain) NSString *installationId;
|
||||
|
||||
/// The device token for the PFInstallation.
|
||||
@property (nonatomic, retain) NSString *deviceToken;
|
||||
|
||||
/// The badge for the PFInstallation.
|
||||
@property (nonatomic, assign) NSInteger badge;
|
||||
|
||||
/// The timeZone for the PFInstallation.
|
||||
@property (nonatomic, readonly, retain) NSString *timeZone;
|
||||
|
||||
/// The channels for the PFInstallation.
|
||||
@property (nonatomic, retain) NSArray *channels;
|
||||
|
||||
@end
|
||||
78
Parse.framework/Versions/1.2.13/Headers/PFLogInView.h
Executable file
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// PFLogInView.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Qian Wang on 3/9/12.
|
||||
// Copyright (c) 2012. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
typedef enum {
|
||||
PFLogInFieldsNone = 0,
|
||||
PFLogInFieldsUsernameAndPassword = 1 << 0,
|
||||
PFLogInFieldsPasswordForgotten = 1 << 1,
|
||||
PFLogInFieldsLogInButton = 1 << 2,
|
||||
PFLogInFieldsFacebook = 1 << 3,
|
||||
PFLogInFieldsTwitter = 1 << 4,
|
||||
PFLogInFieldsSignUpButton = 1 << 5,
|
||||
PFLogInFieldsDismissButton = 1 << 6,
|
||||
|
||||
PFLogInFieldsDefault = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton | PFLogInFieldsSignUpButton | PFLogInFieldsPasswordForgotten | PFLogInFieldsDismissButton
|
||||
} PFLogInFields;
|
||||
|
||||
/*!
|
||||
The class provides a standard log in interface for authenticating a PFUser.
|
||||
*/
|
||||
@interface PFLogInView : UIView
|
||||
|
||||
/*! @name Creating Log In View */
|
||||
/*!
|
||||
Initializes the view with the specified log in elements.
|
||||
@param fields A bitmask specifying the log in elements which are enabled in the view
|
||||
*/
|
||||
- (id)initWithFields:(PFLogInFields) fields;
|
||||
|
||||
/*! @name Customizing the Logo */
|
||||
|
||||
/// The logo. By default, it is the Parse logo.
|
||||
@property (nonatomic, retain) UIView *logo;
|
||||
|
||||
/*! @name Accessing Log In Elements */
|
||||
|
||||
/// The bitmask which specifies the enabled log in elements in the view
|
||||
@property (nonatomic, readonly, assign) PFLogInFields fields;
|
||||
|
||||
/// The username text field. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UITextField *usernameField;
|
||||
|
||||
/// The password text field. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UITextField *passwordField;
|
||||
|
||||
/// The password forgotten button. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UIButton *passwordForgottenButton;
|
||||
|
||||
/// The log in button. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UIButton *logInButton;
|
||||
|
||||
/// The Facebook button. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UIButton *facebookButton;
|
||||
|
||||
/// The Twitter button. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UIButton *twitterButton;
|
||||
|
||||
/// The sign up button. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UIButton *signUpButton;
|
||||
|
||||
/// The dismiss button. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UIButton *dismissButton;
|
||||
|
||||
/// The facebook/twitter login label. It is only shown if the external login is enabled.
|
||||
@property (nonatomic, readonly, retain) UILabel *externalLogInLabel;
|
||||
|
||||
/// The sign up label. It is only shown if sign up button is enabled.
|
||||
@property (nonatomic, readonly, retain) UILabel *signUpLabel;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
95
Parse.framework/Versions/1.2.13/Headers/PFLogInViewController.h
Executable file
@@ -0,0 +1,95 @@
|
||||
//
|
||||
// PFLogInViewController.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Andrew Wang on 3/8/12.
|
||||
// Copyright (c) 2012. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "PFLogInView.h"
|
||||
#import "PFSignUpViewController.h"
|
||||
#import "PFUser.h"
|
||||
|
||||
@protocol PFLogInViewControllerDelegate;
|
||||
|
||||
/*!
|
||||
The class that presents and manages a standard authentication interface for logging in a PFUser.
|
||||
*/
|
||||
@interface PFLogInViewController : UIViewController <UITextFieldDelegate>
|
||||
|
||||
/*! @name Configuring Log In Elements */
|
||||
|
||||
/*!
|
||||
A bitmask specifying the log in elements which are enabled in the view.
|
||||
enum {
|
||||
PFLogInFieldsNone = 0,
|
||||
PFLogInFieldsUsernameAndPassword = 1 << 0,
|
||||
PFLogInFieldsPasswordForgotten = 1 << 1,
|
||||
PFLogInFieldsLogInButton = 1 << 2,
|
||||
PFLogInFieldsFacebook = 1 << 3,
|
||||
PFLogInFieldsTwitter = 1 << 4,
|
||||
PFLogInFieldsSignUpButton = 1 << 5,
|
||||
PFLogInFieldsDismissButton = 1 << 6,
|
||||
PFLogInFieldsDefault = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton | PFLogInFieldsSignUpButton | PFLogInFieldsPasswordForgotten | PFLogInFieldsDismissButton
|
||||
};
|
||||
*/
|
||||
@property (nonatomic) PFLogInFields fields;
|
||||
|
||||
/// The log in view. It contains all the enabled log in elements.
|
||||
@property (nonatomic, readonly, retain) PFLogInView *logInView;
|
||||
|
||||
/*! @name Configuring Log In Behaviors */
|
||||
/// The delegate that responds to the control events of PFLogInViewController.
|
||||
@property (nonatomic, assign) id<PFLogInViewControllerDelegate> delegate;
|
||||
|
||||
/// The facebook permissions that Facebook log in requests for.
|
||||
/// If unspecified, the default is basic facebook permissions.
|
||||
@property (nonatomic, retain) NSArray *facebookPermissions;
|
||||
|
||||
/// The sign up controller if sign up is enabled.
|
||||
/// Use this to configure the sign up view, and the transition animation to the sign up view.
|
||||
/// The default is a sign up view with a username, a password, a dismiss button and a sign up button.
|
||||
@property (nonatomic, retain) PFSignUpViewController *signUpController;
|
||||
|
||||
@end
|
||||
|
||||
/*! @name Notifications */
|
||||
/// The notification is posted immediately after the log in succeeds.
|
||||
extern NSString *const PFLogInSuccessNotification;
|
||||
|
||||
/// The notification is posted immediately after the log in fails.
|
||||
/// If the delegate prevents the log in from starting, the notification is not sent.
|
||||
extern NSString *const PFLogInFailureNotification;
|
||||
|
||||
/// The notification is posted immediately after the log in is cancelled.
|
||||
extern NSString *const PFLogInCancelNotification;
|
||||
|
||||
/*!
|
||||
The protocol defines methods a delegate of a PFLogInViewController should implement.
|
||||
All methods of the protocol are optional.
|
||||
*/
|
||||
@protocol PFLogInViewControllerDelegate <NSObject>
|
||||
@optional
|
||||
|
||||
/*! @name Customizing Behavior */
|
||||
|
||||
/*!
|
||||
Sent to the delegate to determine whether the log in request should be submitted to the server.
|
||||
@param username the username the user tries to log in with.
|
||||
@param password the password the user tries to log in with.
|
||||
@result a boolean indicating whether the log in should proceed.
|
||||
*/
|
||||
- (BOOL)logInViewController:(PFLogInViewController *)logInController shouldBeginLogInWithUsername:(NSString *)username password:(NSString *)password;
|
||||
|
||||
/*! @name Responding to Actions */
|
||||
/// Sent to the delegate when a PFUser is logged in.
|
||||
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user;
|
||||
|
||||
/// Sent to the delegate when the log in attempt fails.
|
||||
- (void)logInViewController:(PFLogInViewController *)logInController didFailToLogInWithError:(NSError *)error;
|
||||
|
||||
/// Sent to the delegate when the log in screen is dismissed.
|
||||
- (void)logInViewControllerDidCancelLogIn:(PFLogInViewController *)logInController;
|
||||
@end
|
||||
|
||||
85
Parse.framework/Versions/1.2.13/Headers/PFObject+Subclass.h
Executable file
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// PFObject+Subclass.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Thomas Bouldin on 2/17/13.
|
||||
// Copyright (c) 2013 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "PFObject.h"
|
||||
|
||||
@class PFQuery;
|
||||
|
||||
/*!
|
||||
<h3>Subclassing Notes</h3>
|
||||
|
||||
Developers can subclass PFObject for a more native object-oriented class structure. Strongly-typed subclasses of PFObject must conform to the PFSubclassing protocol and must call registerSubclass to be returned by PFQuery and other PFObject factories. All methods in PFSubclassing except for [PFSubclassing parseClassName] are already implemented in the PFObject(Subclass) category. Inculding PFObject+Subclass.h in your implementation file provides these implementations automatically.
|
||||
|
||||
Subclasses support simpler initializers, query syntax, and dynamic synthesizers. The following shows an example subclass:
|
||||
|
||||
@interface MYGame : PFObject< PFSubclassing >
|
||||
// Accessing this property is the same as objectForKey:@"title"
|
||||
@property (retain) NSString *title;
|
||||
+ (NSString *)parseClassName;
|
||||
@end
|
||||
|
||||
@implementation MYGame
|
||||
@dynamic title;
|
||||
+ (NSString *)parseClassName {
|
||||
return @"Game";
|
||||
}
|
||||
@end
|
||||
|
||||
MYGame *game = [[MYGame alloc] init];
|
||||
game.title = @"Bughouse";
|
||||
[game saveInBackground];
|
||||
|
||||
*/
|
||||
@interface PFObject(Subclass)
|
||||
|
||||
/*! @name Methods for Subclasses */
|
||||
|
||||
/*!
|
||||
Designated initializer for subclasses.
|
||||
This method can only be called on subclasses which conform to PFSubclassing.
|
||||
This method should not be overridden.
|
||||
*/
|
||||
- (id)init;
|
||||
|
||||
/*!
|
||||
Creates an instance of the registered subclass with this class's parseClassName.
|
||||
This helps a subclass ensure that it can be subclassed itself. For example, [PFUser object] will
|
||||
return a MyUser object if MyUser is a registered subclass of PFUser. For this reason, [MyClass object] is
|
||||
preferred to [[MyClass alloc] init].
|
||||
This method can only be called on subclasses which conform to PFSubclassing.
|
||||
A default implementation is provided by PFObject which should always be sufficient.
|
||||
*/
|
||||
+ (instancetype)object;
|
||||
|
||||
/*!
|
||||
Creates a reference to an existing PFObject for use in creating associations between PFObjects. Calling isDataAvailable on this
|
||||
object will return NO until fetchIfNeeded or refresh has been called. No network request will be made.
|
||||
This method can only be called on subclasses which conform to PFSubclassing.
|
||||
A default implementation is provided by PFObject which should always be sufficient.
|
||||
@param objectId The object id for the referenced object.
|
||||
@result A PFObject without data.
|
||||
*/
|
||||
+ (id)objectWithoutDataWithObjectId:(NSString *)objectId;
|
||||
|
||||
/*!
|
||||
Registers an Objective-C class for Parse to use for representing a given Parse class.
|
||||
Once this is called on a PFObject subclass, any PFObject Parse creates with a class
|
||||
name matching [self parseClassName] will be an instance of subclass.
|
||||
This method can only be called on subclasses which conform to PFSubclassing.
|
||||
A default implementation is provided by PFObject which should always be sufficient.
|
||||
*/
|
||||
+ (void)registerSubclass;
|
||||
|
||||
/*!
|
||||
Returns a query for objects of type +parseClassName.
|
||||
This method can only be called on subclasses which conform to PFSubclassing.
|
||||
A default implementation is provided by PFObject which should always be sufficient.
|
||||
*/
|
||||
+ (PFQuery *)query;
|
||||
|
||||
@end
|
||||
567
Parse.framework/Versions/1.2.13/Headers/PFObject.h
Executable file
@@ -0,0 +1,567 @@
|
||||
// PFObject.h
|
||||
// Copyright 2011 Parse, Inc. All rights reserved.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFACL.h"
|
||||
#import "PFConstants.h"
|
||||
|
||||
@protocol PFSubclassing;
|
||||
|
||||
/*!
|
||||
A Parse Framework Object that is a local representation of data persisted to the Parse cloud.
|
||||
This is the main class that is used to interact with objects in your app.
|
||||
*/
|
||||
@class PFRelation;
|
||||
@class PFTask;
|
||||
|
||||
NS_REQUIRES_PROPERTY_DEFINITIONS
|
||||
@interface PFObject : NSObject {
|
||||
BOOL dirty;
|
||||
|
||||
// An array of NSDictionary of NSString -> PFFieldOperation.
|
||||
// Each dictionary has a subset of the object's keys as keys, and the
|
||||
// changes to the value for that key as its value.
|
||||
// There is always at least one dictionary of pending operations.
|
||||
// Every time a save is started, a new dictionary is added to the end.
|
||||
// Whenever a save completes, the new data is put into fetchedData, and
|
||||
// a dictionary is removed from the start.
|
||||
NSMutableArray *operationSetQueue;
|
||||
|
||||
// Our best estimate as to what the current data is, based on
|
||||
// the last fetch from the server, and the set of pending operations.
|
||||
NSMutableDictionary *estimatedData;
|
||||
}
|
||||
|
||||
#pragma mark Constructors
|
||||
|
||||
/*! @name Creating a PFObject */
|
||||
|
||||
/*!
|
||||
Creates a new PFObject with a class name.
|
||||
@param className A class name can be any alphanumeric string that begins with a letter. It represents an object in your app, like a User of a Document.
|
||||
@result Returns the object that is instantiated with the given class name.
|
||||
*/
|
||||
+ (instancetype)objectWithClassName:(NSString *)className;
|
||||
|
||||
/*!
|
||||
Creates a reference to an existing PFObject for use in creating associations between PFObjects. Calling isDataAvailable on this
|
||||
object will return NO until fetchIfNeeded or refresh has been called. No network request will be made.
|
||||
|
||||
@param className The object's class.
|
||||
@param objectId The object id for the referenced object.
|
||||
@result A PFObject without data.
|
||||
*/
|
||||
+ (instancetype)objectWithoutDataWithClassName:(NSString *)className
|
||||
objectId:(NSString *)objectId;
|
||||
|
||||
/*!
|
||||
Creates a new PFObject with a class name, initialized with data constructed from the specified set of objects and keys.
|
||||
@param className The object's class.
|
||||
@param dictionary An NSDictionary of keys and objects to set on the new PFObject.
|
||||
@result A PFObject with the given class name and set with the given data.
|
||||
*/
|
||||
+ (PFObject *)objectWithClassName:(NSString *)className dictionary:(NSDictionary *)dictionary;
|
||||
|
||||
/*!
|
||||
Initializes a new PFObject with a class name.
|
||||
@param newClassName A class name can be any alphanumeric string that begins with a letter. It represents an object in your app, like a User or a Document.
|
||||
@result Returns the object that is instantiated with the given class name.
|
||||
*/
|
||||
- (id)initWithClassName:(NSString *)newClassName;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Properties
|
||||
|
||||
/*! @name Managing Object Properties */
|
||||
|
||||
/*!
|
||||
The class name of the object.
|
||||
*/
|
||||
@property (readonly) NSString *parseClassName;
|
||||
|
||||
/*!
|
||||
The id of the object.
|
||||
*/
|
||||
@property (nonatomic, retain) NSString *objectId;
|
||||
|
||||
/*!
|
||||
When the object was last updated.
|
||||
*/
|
||||
@property (nonatomic, retain, readonly) NSDate *updatedAt;
|
||||
|
||||
/*!
|
||||
When the object was created.
|
||||
*/
|
||||
@property (nonatomic, retain, readonly) NSDate *createdAt;
|
||||
|
||||
/*!
|
||||
The ACL for this object.
|
||||
*/
|
||||
@property (nonatomic, retain) PFACL *ACL;
|
||||
|
||||
/*!
|
||||
Returns an array of the keys contained in this object. This does not include
|
||||
createdAt, updatedAt, authData, or objectId. It does include things like username
|
||||
and ACL.
|
||||
*/
|
||||
- (NSArray *)allKeys;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Get and set
|
||||
|
||||
/*!
|
||||
Returns the object associated with a given key.
|
||||
@param key The key that the object is associated with.
|
||||
@result The value associated with the given key, or nil if no value is associated with key.
|
||||
*/
|
||||
- (id)objectForKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Sets the object associated with a given key.
|
||||
@param object The object.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)setObject:(id)object forKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Unsets a key on the object.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)removeObjectForKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
* In LLVM 4.0 (XCode 4.5) or higher allows myPFObject[key].
|
||||
@param key The key.
|
||||
*/
|
||||
- (id)objectForKeyedSubscript:(NSString *)key;
|
||||
|
||||
/*!
|
||||
* In LLVM 4.0 (XCode 4.5) or higher allows myObject[key] = value
|
||||
@param object The object.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)setObject:(id)object forKeyedSubscript:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Returns the relation object associated with the given key
|
||||
@param key The key that the relation is associated with.
|
||||
*/
|
||||
- (PFRelation *)relationforKey:(NSString *)key;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Array add and remove
|
||||
|
||||
/*!
|
||||
Adds an object to the end of the array associated with a given key.
|
||||
@param object The object to add.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)addObject:(id)object forKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Adds the objects contained in another array to the end of the array associated
|
||||
with a given key.
|
||||
@param objects The array of objects to add.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)addObjectsFromArray:(NSArray *)objects forKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Adds an object to the array associated with a given key, only if it is not
|
||||
already present in the array. The position of the insert is not guaranteed.
|
||||
@param object The object to add.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)addUniqueObject:(id)object forKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Adds the objects contained in another array to the array associated with
|
||||
a given key, only adding elements which are not already present in the array.
|
||||
The position of the insert is not guaranteed.
|
||||
@param objects The array of objects to add.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)addUniqueObjectsFromArray:(NSArray *)objects forKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Removes all occurrences of an object from the array associated with a given
|
||||
key.
|
||||
@param object The object to remove.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)removeObject:(id)object forKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Removes all occurrences of the objects contained in another array from the
|
||||
array associated with a given key.
|
||||
@param objects The array of objects to remove.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)removeObjectsInArray:(NSArray *)objects forKey:(NSString *)key;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Increment
|
||||
|
||||
/*!
|
||||
Increments the given key by 1.
|
||||
@param key The key.
|
||||
*/
|
||||
- (void)incrementKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Increments the given key by a number.
|
||||
@param key The key.
|
||||
@param amount The amount to increment.
|
||||
*/
|
||||
- (void)incrementKey:(NSString *)key byAmount:(NSNumber *)amount;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Save
|
||||
|
||||
/*! @name Saving an Object to Parse */
|
||||
|
||||
/*!
|
||||
Saves the PFObject.
|
||||
@result Returns whether the save succeeded.
|
||||
*/
|
||||
- (BOOL)save;
|
||||
|
||||
/*!
|
||||
Saves the PFObject and sets an error if it occurs.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the save succeeded.
|
||||
*/
|
||||
- (BOOL)save:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Saves the PFObject asynchronously.
|
||||
*/
|
||||
- (void)saveInBackground;
|
||||
|
||||
/*!
|
||||
Saves the PFObject asynchronously and executes the given callback block.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
- (void)saveInBackgroundWithBlock:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Saves the PFObject asynchronously and calls the given callback.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
- (void)saveInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
@see saveEventually:
|
||||
*/
|
||||
- (void)saveEventually;
|
||||
|
||||
/*!
|
||||
Saves this object to the server at some unspecified time in the future, even if Parse is currently inaccessible.
|
||||
Use this when you may not have a solid network connection, and don't need to know when the save completes.
|
||||
If there is some problem with the object such that it can't be saved, it will be silently discarded. If the save
|
||||
completes successfully while the object is still in memory, then callback will be called.
|
||||
|
||||
Objects saved with this method will be stored locally in an on-disk cache until they can be delivered to Parse.
|
||||
They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection is
|
||||
available. Objects saved this way will persist even after the app is closed, in which case they will be sent the
|
||||
next time the app is opened. If more than 10MB of data is waiting to be sent, subsequent calls to saveEventually
|
||||
will cause old saves to be silently discarded until the connection can be re-established, and the queued objects
|
||||
can be saved.
|
||||
*/
|
||||
- (void)saveEventually:(PFBooleanResultBlock)callback;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Save All
|
||||
|
||||
/*! @name Saving Many Objects to Parse */
|
||||
|
||||
/*!
|
||||
Saves a collection of objects all at once.
|
||||
@param objects The array of objects to save.
|
||||
@result Returns whether the save succeeded.
|
||||
*/
|
||||
+ (BOOL)saveAll:(NSArray *)objects;
|
||||
|
||||
/*!
|
||||
Saves a collection of objects all at once and sets an error if necessary.
|
||||
@param objects The array of objects to save.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the save succeeded.
|
||||
*/
|
||||
+ (BOOL)saveAll:(NSArray *)objects error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Saves a collection of objects all at once asynchronously.
|
||||
@param objects The array of objects to save.
|
||||
*/
|
||||
+ (void)saveAllInBackground:(NSArray *)objects;
|
||||
|
||||
/*!
|
||||
Saves a collection of objects all at once asynchronously and the block when done.
|
||||
@param objects The array of objects to save.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)saveAllInBackground:(NSArray *)objects
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Saves a collection of objects all at once asynchronously and calls a callback when done.
|
||||
@param objects The array of objects to save.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithError:(NSError *)error. error will be nil on success and set if there was an error.
|
||||
*/
|
||||
+ (void)saveAllInBackground:(NSArray *)objects
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Delete All
|
||||
|
||||
/*! @name Delete Many Objects from Parse */
|
||||
|
||||
/*!
|
||||
Deletes a collection of objects all at once.
|
||||
@param objects The array of objects to delete.
|
||||
@result Returns whether the delete succeeded.
|
||||
*/
|
||||
+ (BOOL)deleteAll:(NSArray *)objects;
|
||||
|
||||
/*!
|
||||
Deletes a collection of objects all at once and sets an error if necessary.
|
||||
@param objects The array of objects to delete.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the delete succeeded.
|
||||
*/
|
||||
+ (BOOL)deleteAll:(NSArray *)objects error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Deletes a collection of objects all at once asynchronously.
|
||||
@param objects The array of objects to delete.
|
||||
*/
|
||||
+ (void)deleteAllInBackground:(NSArray *)objects;
|
||||
|
||||
/*!
|
||||
Deletes a collection of objects all at once asynchronously and the block when done.
|
||||
@param objects The array of objects to delete.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)deleteAllInBackground:(NSArray *)objects
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Deletes a collection of objects all at once asynchronously and calls a callback when done.
|
||||
@param objects The array of objects to delete.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithError:(NSError *)error. error will be nil on success and set if there was an error.
|
||||
*/
|
||||
+ (void)deleteAllInBackground:(NSArray *)objects
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Refresh
|
||||
|
||||
/*! @name Getting an Object from Parse */
|
||||
|
||||
/*!
|
||||
Gets whether the PFObject has been fetched.
|
||||
@result YES if the PFObject is new or has been fetched or refreshed. NO otherwise.
|
||||
*/
|
||||
- (BOOL)isDataAvailable;
|
||||
|
||||
#if PARSE_IOS_ONLY
|
||||
// Deprecated and intentionally not available on the new OS X SDK
|
||||
|
||||
/*!
|
||||
Refreshes the PFObject with the current data from the server.
|
||||
*/
|
||||
- (void)refresh;
|
||||
|
||||
/*!
|
||||
Refreshes the PFObject with the current data from the server and sets an error if it occurs.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
*/
|
||||
- (void)refresh:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Refreshes the PFObject asynchronously and executes the given callback block.
|
||||
@param block The block to execute. The block should have the following argument signature: (PFObject *object, NSError *error)
|
||||
*/
|
||||
- (void)refreshInBackgroundWithBlock:(PFObjectResultBlock)block;
|
||||
|
||||
/*!
|
||||
Refreshes the PFObject asynchronously and calls the given callback.
|
||||
@param target The target on which the selector will be called.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(PFObject *)refreshedObject error:(NSError *)error. error will be nil on success and set if there was an error. refreshedObject will be the PFObject with the refreshed data.
|
||||
*/
|
||||
- (void)refreshInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
#endif
|
||||
|
||||
/*!
|
||||
Fetches the PFObject with the current data from the server.
|
||||
*/
|
||||
- (void)fetch;
|
||||
/*!
|
||||
Fetches the PFObject with the current data from the server and sets an error if it occurs.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
*/
|
||||
- (void)fetch:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Fetches the PFObject's data from the server if isDataAvailable is false.
|
||||
*/
|
||||
- (PFObject *)fetchIfNeeded;
|
||||
|
||||
/*!
|
||||
Fetches the PFObject's data from the server if isDataAvailable is false.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
*/
|
||||
- (PFObject *)fetchIfNeeded:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Fetches the PFObject asynchronously and executes the given callback block.
|
||||
@param block The block to execute. The block should have the following argument signature: (PFObject *object, NSError *error)
|
||||
*/
|
||||
- (void)fetchInBackgroundWithBlock:(PFObjectResultBlock)block;
|
||||
|
||||
/*!
|
||||
Fetches the PFObject asynchronously and calls the given callback.
|
||||
@param target The target on which the selector will be called.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(PFObject *)refreshedObject error:(NSError *)error. error will be nil on success and set if there was an error. refreshedObject will be the PFObject with the refreshed data.
|
||||
*/
|
||||
- (void)fetchInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Fetches the PFObject's data asynchronously if isDataAvailable is false, then calls the callback block.
|
||||
@param block The block to execute. The block should have the following argument signature: (PFObject *object, NSError *error)
|
||||
*/
|
||||
- (void)fetchIfNeededInBackgroundWithBlock:(PFObjectResultBlock)block;
|
||||
|
||||
/*!
|
||||
Fetches the PFObject's data asynchronously if isDataAvailable is false, then calls the callback.
|
||||
@param target The target on which the selector will be called.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(PFObject *)fetchedObject error:(NSError *)error. error will be nil on success and set if there was an error.
|
||||
*/
|
||||
- (void)fetchIfNeededInBackgroundWithTarget:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*! @name Getting Many Objects from Parse */
|
||||
|
||||
/*!
|
||||
Fetches all of the PFObjects with the current data from the server
|
||||
@param objects The list of objects to fetch.
|
||||
*/
|
||||
+ (void)fetchAll:(NSArray *)objects;
|
||||
|
||||
/*!
|
||||
Fetches all of the PFObjects with the current data from the server and sets an error if it occurs.
|
||||
@param objects The list of objects to fetch.
|
||||
@param error Pointer to an NSError that will be set if necessary
|
||||
*/
|
||||
+ (void)fetchAll:(NSArray *)objects error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Fetches all of the PFObjects with the current data from the server
|
||||
@param objects The list of objects to fetch.
|
||||
*/
|
||||
+ (void)fetchAllIfNeeded:(NSArray *)objects;
|
||||
|
||||
/*!
|
||||
Fetches all of the PFObjects with the current data from the server and sets an error if it occurs.
|
||||
@param objects The list of objects to fetch.
|
||||
@param error Pointer to an NSError that will be set if necessary
|
||||
*/
|
||||
+ (void)fetchAllIfNeeded:(NSArray *)objects error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Fetches all of the PFObjects with the current data from the server asynchronously and calls the given block.
|
||||
@param objects The list of objects to fetch.
|
||||
@param block The block to execute. The block should have the following argument signature: (NSArray *objects, NSError *error)
|
||||
*/
|
||||
+ (void)fetchAllInBackground:(NSArray *)objects
|
||||
block:(PFArrayResultBlock)block;
|
||||
|
||||
/*!
|
||||
Fetches all of the PFObjects with the current data from the server asynchronously and calls the given callback.
|
||||
@param objects The list of objects to fetch.
|
||||
@param target The target on which the selector will be called.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSArray *)fetchedObjects error:(NSError *)error. error will be nil on success and set if there was an error. fetchedObjects will the array of PFObjects that were fetched.
|
||||
*/
|
||||
+ (void)fetchAllInBackground:(NSArray *)objects
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Fetches all of the PFObjects with the current data from the server asynchronously and calls the given block.
|
||||
@param objects The list of objects to fetch.
|
||||
@param block The block to execute. The block should have the following argument signature: (NSArray *objects, NSError *error)
|
||||
*/
|
||||
+ (void)fetchAllIfNeededInBackground:(NSArray *)objects
|
||||
block:(PFArrayResultBlock)block;
|
||||
|
||||
/*!
|
||||
Fetches all of the PFObjects with the current data from the server asynchronously and calls the given callback.
|
||||
@param objects The list of objects to fetch.
|
||||
@param target The target on which the selector will be called.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSArray *)fetchedObjects error:(NSError *)error. error will be nil on success and set if there was an error. fetchedObjects will the array of PFObjects
|
||||
that were fetched.
|
||||
*/
|
||||
+ (void)fetchAllIfNeededInBackground:(NSArray *)objects
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Delete
|
||||
|
||||
/*! @name Removing an Object from Parse */
|
||||
|
||||
/*!
|
||||
Deletes the PFObject.
|
||||
@result Returns whether the delete succeeded.
|
||||
*/
|
||||
- (BOOL)delete;
|
||||
|
||||
/*!
|
||||
Deletes the PFObject and sets an error if it occurs.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the delete succeeded.
|
||||
*/
|
||||
- (BOOL)delete:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Deletes the PFObject asynchronously.
|
||||
*/
|
||||
- (void)deleteInBackground;
|
||||
|
||||
/*!
|
||||
Deletes the PFObject asynchronously and executes the given callback block.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
- (void)deleteInBackgroundWithBlock:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Deletes the PFObject asynchronously and calls the given callback.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
- (void)deleteInBackgroundWithTarget:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Deletes this object from the server at some unspecified time in the future, even if Parse is currently inaccessible.
|
||||
Use this when you may not have a solid network connection, and don't need to know when the delete completes.
|
||||
If there is some problem with the object such that it can't be deleted, the request will be silently discarded.
|
||||
|
||||
Delete instructions made with this method will be stored locally in an on-disk cache until they can be transmitted
|
||||
to Parse. They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection
|
||||
is available. Delete requests will persist even after the app is closed, in which case they will be sent the
|
||||
next time the app is opened. If more than 10MB of saveEventually or deleteEventually commands are waiting to be sent,
|
||||
subsequent calls to saveEventually or deleteEventually will cause old requests to be silently discarded until the
|
||||
connection can be re-established, and the queued requests can go through.
|
||||
*/
|
||||
- (void)deleteEventually;
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@end
|
||||
67
Parse.framework/Versions/1.2.13/Headers/PFProduct.h
Executable file
@@ -0,0 +1,67 @@
|
||||
//
|
||||
// PFProduct.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Qian Wang on 6/7/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "PFObject.h"
|
||||
#import "PFSubclassing.h"
|
||||
#import "PFFile.h"
|
||||
|
||||
/*!
|
||||
Represents an in-app purchase product on the Parse server.
|
||||
By default, products can only be created via the data browser; saving a PFProduct
|
||||
will result in error. However, the products' metadata information can be queried
|
||||
and viewed.
|
||||
|
||||
This class is currently for iOS only.
|
||||
*/
|
||||
@interface PFProduct : PFObject<PFSubclassing>
|
||||
|
||||
/*! The name of the Product class in the REST API. This is a required
|
||||
* PFSubclassing method */
|
||||
+ (NSString *)parseClassName;
|
||||
|
||||
/** @name Querying for Products */
|
||||
/*!
|
||||
A query that fetches all product instances registered on Parse's server.
|
||||
*/
|
||||
+ (PFQuery *)query;
|
||||
|
||||
/** @name Accessing Product-specific Properties */
|
||||
/*!
|
||||
The product identifier of the product.
|
||||
This should match the product identifier in iTunes Connect exactly.
|
||||
*/
|
||||
@property (nonatomic, retain) NSString *productIdentifier;
|
||||
|
||||
/*!
|
||||
The icon of the product.
|
||||
*/
|
||||
@property (nonatomic, retain) PFFile *icon;
|
||||
|
||||
/*!
|
||||
The title of the product.
|
||||
*/
|
||||
@property (nonatomic, retain) NSString *title;
|
||||
|
||||
/*!
|
||||
The subtitle of the product.
|
||||
*/
|
||||
@property (nonatomic, retain) NSString *subtitle;
|
||||
|
||||
/*!
|
||||
The order in which the product information is displayed in PFProductTableViewController.
|
||||
The product with a smaller order is displayed earlier in the PFProductTableViewController.
|
||||
*/
|
||||
@property (nonatomic, retain) NSNumber *order;
|
||||
|
||||
/*!
|
||||
The name of the associated download. If there is no downloadable asset, it should be nil.
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *downloadName;
|
||||
|
||||
|
||||
@end
|
||||
22
Parse.framework/Versions/1.2.13/Headers/PFProductTableViewController.h
Executable file
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// PFProductsTableViewController.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Qian Wang on 5/15/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "PFQueryTableViewController.h"
|
||||
|
||||
/*!
|
||||
PFProductTableViewController displays in-app purchase products stored on Parse.
|
||||
In addition to setting up in-app purchases in iTunesConnect, the app developer needs
|
||||
to register product information on Parse, in the Product class.
|
||||
*/
|
||||
@interface PFProductTableViewController : PFQueryTableViewController
|
||||
|
||||
/*!
|
||||
Initializes a product table view controller.
|
||||
*/
|
||||
- (id)init;
|
||||
@end
|
||||
63
Parse.framework/Versions/1.2.13/Headers/PFPurchase.h
Executable file
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// PFPurchase.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Qian Wang on 5/2/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <StoreKit/StoreKit.h>
|
||||
#import "PFConstants.h"
|
||||
|
||||
/*!
|
||||
PFPurchase provides a set of APIs for working with in-app purchases.
|
||||
|
||||
This class is currently for iOS only.
|
||||
*/
|
||||
@interface PFPurchase : NSObject
|
||||
|
||||
/*!
|
||||
Use this method to add application logic block which is run when buying a product.
|
||||
This method should be called once for each product, and should be called before
|
||||
calling buyProduct:block. All invocations to addObserverForProduct:block: should happen within
|
||||
the same method, and on the main thread. It is recommended to place all invocations of this method
|
||||
in application:didFinishLaunchingWithOptions:.
|
||||
@param productIdentifier the product identifier
|
||||
@param completion the completion block
|
||||
*/
|
||||
+ (void)addObserverForProduct:(NSString *)productIdentifier block:(void(^)(SKPaymentTransaction *transaction))block;
|
||||
|
||||
/*!
|
||||
Asynchronously initiates the purchase for the product.
|
||||
@param productIdentifier the product identifier
|
||||
@param block the completion block.
|
||||
*/
|
||||
+ (void)buyProduct:(NSString *)productIdentifier block:(void(^)(NSError *error))block;
|
||||
|
||||
/*!
|
||||
Asynchronously download the purchased asset, which is stored on Parse's server.
|
||||
Parse verifies the receipt with Apple and delivers the content only if the receipt is valid.
|
||||
@param transaction the transaction, which contains the receipt.
|
||||
@param completion the completion block.
|
||||
*/
|
||||
+ (void)downloadAssetForTransaction:(SKPaymentTransaction *)transaction completion:(void(^)(NSString *filePath, NSError *error))completion;
|
||||
|
||||
/*!
|
||||
Asynchronously download the purchased asset, which is stored on Parse's server.
|
||||
Parse verifies the receipt with Apple and delivers the content only if the receipt is valid.
|
||||
@param transaction the transaction, which contains the receipt.
|
||||
@param completion the completion block.
|
||||
@param progress the progress block, which is called multiple times to reveal progress of the download.
|
||||
*/
|
||||
+ (void)downloadAssetForTransaction:(SKPaymentTransaction *)transaction completion:(void(^)(NSString *filePath, NSError *error))completion progress:(PFProgressBlock)progress;
|
||||
|
||||
/*!
|
||||
Asynchronously restore completed transactions for the current user.
|
||||
Note: This method is only important to developers who want to preserve purchase states across
|
||||
different installations of the same app.
|
||||
Only nonconsumable purchases are restored. If observers for the products have been added before
|
||||
calling this method, invoking the method reruns the application logic associated with the purchase.
|
||||
*/
|
||||
+ (void)restore;
|
||||
@end
|
||||
22
Parse.framework/Versions/1.2.13/Headers/PFPurchaseTableViewCell.h
Executable file
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// PFPurchaseTableViewCell.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Qian Wang on 5/21/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "PFTableViewCell.h"
|
||||
|
||||
typedef enum {
|
||||
PFPurchaseTableViewCellStateNormal,
|
||||
PFPurchaseTableViewCellStateDownloading,
|
||||
PFPurchaseTableViewCellStateDownloaded
|
||||
} PFPurchaseTableViewCellState;
|
||||
|
||||
@interface PFPurchaseTableViewCell : PFTableViewCell
|
||||
@property (nonatomic, assign) PFPurchaseTableViewCellState state;
|
||||
@property (nonatomic, retain, readonly) UILabel *priceLabel;
|
||||
@property (nonatomic, retain, readonly) UIProgressView *progressView;
|
||||
@end
|
||||
396
Parse.framework/Versions/1.2.13/Headers/PFPush.h
Executable file
@@ -0,0 +1,396 @@
|
||||
//
|
||||
// PFPush.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Ilya Sukhar on 7/4/11.
|
||||
// Copyright 2011 Parse, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AudioToolbox/AudioToolbox.h>
|
||||
#import "PFConstants.h"
|
||||
#import "PFQuery.h"
|
||||
|
||||
/*!
|
||||
A class which defines a push notification that can be sent from
|
||||
a client device.
|
||||
|
||||
The preferred way of modifying or retrieving channel subscriptions is to use
|
||||
the PFInstallation class, instead of the class methods in PFPush.
|
||||
|
||||
This class is currently for iOS only. Parse does not handle Push Notifications
|
||||
to Parse applications running on OS X. Push Notifications can be sent from OS X
|
||||
applications via Cloud Code or the REST API to push-enabled devices (e.g. iOS
|
||||
or Android).
|
||||
*/
|
||||
@interface PFPush : NSObject
|
||||
|
||||
/*! @name Creating a Push Notification */
|
||||
+ (PFPush *)push;
|
||||
|
||||
/*! @name Configuring a Push Notification */
|
||||
|
||||
/*!
|
||||
Sets the channel on which this push notification will be sent.
|
||||
@param channel The channel to set for this push. The channel name must start
|
||||
with a letter and contain only letters, numbers, dashes, and underscores.
|
||||
*/
|
||||
- (void)setChannel:(NSString *)channel;
|
||||
|
||||
/*!
|
||||
Sets the array of channels on which this push notification will
|
||||
be sent.
|
||||
@param channels The array of channels to set for this push. Each channel name
|
||||
must start with a letter and contain only letters, numbers, dashes, and underscores.
|
||||
*/
|
||||
- (void)setChannels:(NSArray *)channels;
|
||||
|
||||
/*!
|
||||
Sets an installation query to which this push notification will be sent. The
|
||||
query should be created via [PFInstallation query] and should not specify a
|
||||
skip, limit, or order.
|
||||
@param query The installation query to set for this push.
|
||||
*/
|
||||
- (void)setQuery:(PFQuery *)query;
|
||||
|
||||
/*!
|
||||
Sets an alert message for this push notification. This will overwrite
|
||||
any data specified in setData.
|
||||
@param message The message to send in this push.
|
||||
*/
|
||||
- (void)setMessage:(NSString *)message;
|
||||
|
||||
/*!
|
||||
Sets an arbitrary data payload for this push notification. See the guide
|
||||
for information about the dictionary structure. This will overwrite any
|
||||
data specified in setMessage.
|
||||
@param data The data to send in this push.
|
||||
*/
|
||||
- (void)setData:(NSDictionary *)data;
|
||||
|
||||
/*!
|
||||
Deprecated. Please use a PFInstallation.query with a constraint on deviceType.
|
||||
*/
|
||||
- (void)setPushToAndroid:(BOOL)pushToAndroid __attribute__ ((deprecated));
|
||||
|
||||
/*!
|
||||
Deprecated. Please use a PFInstallation.query with a constraint on deviceType.
|
||||
*/
|
||||
- (void)setPushToIOS:(BOOL)pushToIOS __attribute__ ((deprecated));
|
||||
|
||||
/*!
|
||||
Sets the expiration time for this notification. The notification will be
|
||||
sent to devices which are either online at the time the notification
|
||||
is sent, or which come online before the expiration time is reached.
|
||||
Because device clocks are not guaranteed to be accurate, most applications
|
||||
should instead use expireAfterTimeInterval.
|
||||
@param time The time at which the notification should expire.
|
||||
*/
|
||||
- (void)expireAtDate:(NSDate *)date;
|
||||
|
||||
/*!
|
||||
Sets the time interval after which this notification should expire.
|
||||
This notification will be sent to devices which are either online at
|
||||
the time the notification is sent, or which come online within the given
|
||||
time interval of the notification being received by Parse's server.
|
||||
An interval which is less than or equal to zero indicates that the
|
||||
message should only be sent to devices which are currently online.
|
||||
@param interval The interval after which the notification should expire.
|
||||
*/
|
||||
- (void)expireAfterTimeInterval:(NSTimeInterval)timeInterval;
|
||||
|
||||
/*!
|
||||
Clears both expiration values, indicating that the notification should
|
||||
never expire.
|
||||
*/
|
||||
- (void)clearExpiration;
|
||||
|
||||
/*! @name Sending Push Notifications */
|
||||
|
||||
/*!
|
||||
Send a push message to a channel.
|
||||
@param channel The channel to send to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param message The message to send.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the send succeeded.
|
||||
*/
|
||||
+ (BOOL)sendPushMessageToChannel:(NSString *)channel
|
||||
withMessage:(NSString *)message
|
||||
error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Asynchronously send a push message to a channel.
|
||||
@param channel The channel to send to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param message The message to send.
|
||||
*/
|
||||
+ (void)sendPushMessageToChannelInBackground:(NSString *)channel
|
||||
withMessage:(NSString *)message;
|
||||
|
||||
/*!
|
||||
Asynchronously sends a push message to a channel and calls the given block.
|
||||
@param channel The channel to send to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param message The message to send.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)sendPushMessageToChannelInBackground:(NSString *)channel
|
||||
withMessage:(NSString *)message
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Asynchronously send a push message to a channel.
|
||||
@param channel The channel to send to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param message The message to send.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
+ (void)sendPushMessageToChannelInBackground:(NSString *)channel
|
||||
withMessage:(NSString *)message
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Send a push message to a query.
|
||||
@param query The query to send to. The query must be a PFInstallation query
|
||||
created with [PFInstallation query].
|
||||
@param message The message to send.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the send succeeded.
|
||||
*/
|
||||
+ (BOOL)sendPushMessageToQuery:(PFQuery *)query
|
||||
withMessage:(NSString *)message
|
||||
error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Asynchronously send a push message to a query.
|
||||
@param query The query to send to. The query must be a PFInstallation query
|
||||
created with [PFInstallation query].
|
||||
@param message The message to send.
|
||||
*/
|
||||
+ (void)sendPushMessageToQueryInBackground:(PFQuery *)query
|
||||
withMessage:(NSString *)message;
|
||||
|
||||
/*!
|
||||
Asynchronously sends a push message to a query and calls the given block.
|
||||
@param query The query to send to. The query must be a PFInstallation query
|
||||
created with [PFInstallation query].
|
||||
@param message The message to send.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)sendPushMessageToQueryInBackground:(PFQuery *)query
|
||||
withMessage:(NSString *)message
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Send this push message.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the send succeeded.
|
||||
*/
|
||||
- (BOOL)sendPush:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Asynchronously send this push message.
|
||||
*/
|
||||
- (void)sendPushInBackground;
|
||||
|
||||
/*!
|
||||
Asynchronously send this push message and executes the given callback block.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
- (void)sendPushInBackgroundWithBlock:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Asynchronously send this push message and calls the given callback.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
- (void)sendPushInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Send a push message with arbitrary data to a channel. See the guide for information about the dictionary structure.
|
||||
@param channel The channel to send to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param data The data to send.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the send succeeded.
|
||||
*/
|
||||
+ (BOOL)sendPushDataToChannel:(NSString *)channel
|
||||
withData:(NSDictionary *)data
|
||||
error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Asynchronously send a push message with arbitrary data to a channel. See the guide for information about the dictionary structure.
|
||||
@param channel The channel to send to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param data The data to send.
|
||||
*/
|
||||
+ (void)sendPushDataToChannelInBackground:(NSString *)channel
|
||||
withData:(NSDictionary *)data;
|
||||
|
||||
/*!
|
||||
Asynchronously sends a push message with arbitrary data to a channel and calls the given block. See the guide for information about the dictionary structure.
|
||||
@param channel The channel to send to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param data The data to send.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)sendPushDataToChannelInBackground:(NSString *)channel
|
||||
withData:(NSDictionary *)data
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Asynchronously send a push message with arbitrary data to a channel. See the guide for information about the dictionary structure.
|
||||
@param channel The channel to send to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param data The data to send.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
+ (void)sendPushDataToChannelInBackground:(NSString *)channel
|
||||
withData:(NSDictionary *)data
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Send a push message with arbitrary data to a query. See the guide for information about the dictionary structure.
|
||||
@param query The query to send to. The query must be a PFInstallation query
|
||||
created with [PFInstallation query].
|
||||
@param data The data to send.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the send succeeded.
|
||||
*/
|
||||
+ (BOOL)sendPushDataToQuery:(PFQuery *)query
|
||||
withData:(NSDictionary *)data
|
||||
error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Asynchronously send a push message with arbitrary data to a query. See the guide for information about the dictionary structure.
|
||||
@param query The query to send to. The query must be a PFInstallation query
|
||||
created with [PFInstallation query].
|
||||
@param data The data to send.
|
||||
*/
|
||||
+ (void)sendPushDataToQueryInBackground:(PFQuery *)query
|
||||
withData:(NSDictionary *)data;
|
||||
|
||||
/*!
|
||||
Asynchronously sends a push message with arbitrary data to a query and calls the given block. See the guide for information about the dictionary structure.
|
||||
@param query The query to send to. The query must be a PFInstallation query
|
||||
created with [PFInstallation query].
|
||||
@param data The data to send.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)sendPushDataToQueryInBackground:(PFQuery *)query
|
||||
withData:(NSDictionary *)data
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*! @name Handling Notifications */
|
||||
|
||||
/*!
|
||||
A default handler for push notifications while the app is active to mimic the behavior of iOS push notifications while the app is backgrounded or not running. Call this from didReceiveRemoteNotification.
|
||||
@param userInfo The userInfo dictionary you get in didReceiveRemoteNotification.
|
||||
*/
|
||||
+ (void)handlePush:(NSDictionary *)userInfo;
|
||||
|
||||
/*! @name Managing Channel Subscriptions */
|
||||
|
||||
/*!
|
||||
Store the device token locally for push notifications. Usually called from you main app delegate's didRegisterForRemoteNotificationsWithDeviceToken.
|
||||
@param deviceToken Either as an NSData straight from didRegisterForRemoteNotificationsWithDeviceToken or as an NSString if you converted it yourself.
|
||||
*/
|
||||
+ (void)storeDeviceToken:(id)deviceToken;
|
||||
|
||||
/*!
|
||||
Get all the channels that this device is subscribed to.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns an NSSet containing all the channel names this device is subscribed to.
|
||||
*/
|
||||
+ (NSSet *)getSubscribedChannels:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Get all the channels that this device is subscribed to.
|
||||
@param block The block to execute. The block should have the following argument signature: (NSSet *channels, NSError *error)
|
||||
*/
|
||||
+ (void)getSubscribedChannelsInBackgroundWithBlock:(PFSetResultBlock)block;
|
||||
|
||||
/*!
|
||||
Asynchronously get all the channels that this device is subscribed to.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSSet *)result error:(NSError *)error. error will be nil on success and set if there was an error.
|
||||
@result Returns an NSSet containing all the channel names this device is subscribed to.
|
||||
*/
|
||||
+ (void)getSubscribedChannelsInBackgroundWithTarget:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Subscribes the device to a channel of push notifications.
|
||||
@param channel The channel to subscribe to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the subscribe succeeded.
|
||||
*/
|
||||
+ (BOOL)subscribeToChannel:(NSString *)channel error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Asynchronously subscribes the device to a channel of push notifications.
|
||||
@param channel The channel to subscribe to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
*/
|
||||
+ (void)subscribeToChannelInBackground:(NSString *)channel;
|
||||
|
||||
/*!
|
||||
Asynchronously subscribes the device to a channel of push notifications and calls the given block.
|
||||
@param channel The channel to subscribe to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)subscribeToChannelInBackground:(NSString *)channel
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Asynchronously subscribes the device to a channel of push notifications and calls the given callback.
|
||||
@param channel The channel to subscribe to. The channel name must start with
|
||||
a letter and contain only letters, numbers, dashes, and underscores.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
+ (void)subscribeToChannelInBackground:(NSString *)channel
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Unsubscribes the device to a channel of push notifications.
|
||||
@param channel The channel to unsubscribe from.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns whether the unsubscribe succeeded.
|
||||
*/
|
||||
+ (BOOL)unsubscribeFromChannel:(NSString *)channel error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Asynchronously unsubscribes the device from a channel of push notifications.
|
||||
@param channel The channel to unsubscribe from.
|
||||
*/
|
||||
+ (void)unsubscribeFromChannelInBackground:(NSString *)channel;
|
||||
|
||||
|
||||
/*!
|
||||
Asynchronously unsubscribes the device from a channel of push notifications and calls the given block.
|
||||
@param channel The channel to unsubscribe from.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)unsubscribeFromChannelInBackground:(NSString *)channel
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Asynchronously unsubscribes the device from a channel of push notifications and calls the given callback.
|
||||
@param channel The channel to unsubscribe from.
|
||||
@param target The object to call selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
+ (void)unsubscribeFromChannelInBackground:(NSString *)channel
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
@end
|
||||
588
Parse.framework/Versions/1.2.13/Headers/PFQuery.h
Executable file
@@ -0,0 +1,588 @@
|
||||
// PFQuery.m
|
||||
// Copyright 2011 Parse, Inc. All rights reserved.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFGeoPoint.h"
|
||||
#import "PFObject.h"
|
||||
#import "PFUser.h"
|
||||
|
||||
/*!
|
||||
A class that defines a query that is used to query for PFObjects.
|
||||
*/
|
||||
@interface PFQuery : NSObject
|
||||
|
||||
#pragma mark Query options
|
||||
|
||||
/** @name Creating a Query for a Class */
|
||||
|
||||
/*!
|
||||
Returns a PFQuery for a given class.
|
||||
@param className The class to query on.
|
||||
@return A PFQuery object.
|
||||
*/
|
||||
+ (PFQuery *)queryWithClassName:(NSString *)className;
|
||||
|
||||
/*!
|
||||
Creates a PFQuery with the constraints given by predicate.
|
||||
|
||||
The following types of predicates are supported:
|
||||
* Simple comparisons such as =, !=, <, >, <=, >=, and BETWEEN with a key and a constant.
|
||||
* Containment predicates, such as "x IN {1, 2, 3}".
|
||||
* Key-existence predicates, such as "x IN SELF".
|
||||
* BEGINSWITH expressions.
|
||||
* Compound predicates with AND, OR, and NOT.
|
||||
* SubQueries with "key IN %@", subquery.
|
||||
|
||||
The following types of predicates are NOT supported:
|
||||
* Aggregate operations, such as ANY, SOME, ALL, or NONE.
|
||||
* Regular expressions, such as LIKE, MATCHES, CONTAINS, or ENDSWITH.
|
||||
* Predicates comparing one key to another.
|
||||
* Complex predicates with many ORed clauses.
|
||||
|
||||
*/
|
||||
+ (PFQuery *)queryWithClassName:(NSString *)className predicate:(NSPredicate *)predicate;
|
||||
|
||||
/*!
|
||||
Initializes the query with a class name.
|
||||
@param newClassName The class name.
|
||||
*/
|
||||
- (id)initWithClassName:(NSString *)newClassName;
|
||||
|
||||
/*!
|
||||
The class name to query for
|
||||
*/
|
||||
@property (nonatomic, retain) NSString *parseClassName;
|
||||
|
||||
/** @name Adding Basic Constraints */
|
||||
|
||||
/*!
|
||||
Make the query include PFObjects that have a reference stored at the provided key.
|
||||
This has an effect similar to a join. You can use dot notation to specify which fields in
|
||||
the included object are also fetch.
|
||||
@param key The key to load child PFObjects for.
|
||||
*/
|
||||
- (void)includeKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Make the query restrict the fields of the returned PFObjects to include only the provided keys.
|
||||
If this is called multiple times, then all of the keys specified in each of the calls will be included.
|
||||
@param keys The keys to include in the result.
|
||||
*/
|
||||
- (void)selectKeys:(NSArray *)keys;
|
||||
|
||||
/*!
|
||||
Add a constraint that requires a particular key exists.
|
||||
@param key The key that should exist.
|
||||
*/
|
||||
- (void)whereKeyExists:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Add a constraint that requires a key not exist.
|
||||
@param key The key that should not exist.
|
||||
*/
|
||||
- (void)whereKeyDoesNotExist:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's object to be equal to the provided object.
|
||||
@param key The key to be constrained.
|
||||
@param object The object that must be equalled.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key equalTo:(id)object;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's object to be less than the provided object.
|
||||
@param key The key to be constrained.
|
||||
@param object The object that provides an upper bound.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key lessThan:(id)object;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's object to be less than or equal to the provided object.
|
||||
@param key The key to be constrained.
|
||||
@param object The object that must be equalled.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key lessThanOrEqualTo:(id)object;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's object to be greater than the provided object.
|
||||
@param key The key to be constrained.
|
||||
@param object The object that must be equalled.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key greaterThan:(id)object;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's object to be greater than or equal to the provided object.
|
||||
@param key The key to be constrained.
|
||||
@param object The object that must be equalled.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key greaterThanOrEqualTo:(id)object;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's object to be not equal to the provided object.
|
||||
@param key The key to be constrained.
|
||||
@param object The object that must not be equalled.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key notEqualTo:(id)object;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's object to be contained in the provided array.
|
||||
@param key The key to be constrained.
|
||||
@param array The possible values for the key's object.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key containedIn:(NSArray *)array;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's object not be contained in the provided array.
|
||||
@param key The key to be constrained.
|
||||
@param array The list of values the key's object should not be.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key notContainedIn:(NSArray *)array;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's array contains every element of the provided array.
|
||||
@param key The key to be constrained.
|
||||
@param array The array of values to search for.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key containsAllObjectsInArray:(NSArray *)array;
|
||||
|
||||
/** @name Adding Location Constraints */
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's coordinates (specified via PFGeoPoint) be near
|
||||
a reference point. Distance is calculated based on angular distance on a sphere. Results will be sorted by distance
|
||||
from reference point.
|
||||
@param key The key to be constrained.
|
||||
@param geopoint The reference point. A PFGeoPoint.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's coordinates (specified via PFGeoPoint) be near
|
||||
a reference point and within the maximum distance specified (in miles). Distance is calculated based on
|
||||
a spherical coordinate system. Results will be sorted by distance (nearest to farthest) from the reference point.
|
||||
@param key The key to be constrained.
|
||||
@param geopoint The reference point. A PFGeoPoint.
|
||||
@param maxDistance Maximum distance in miles.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinMiles:(double)maxDistance;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's coordinates (specified via PFGeoPoint) be near
|
||||
a reference point and within the maximum distance specified (in kilometers). Distance is calculated based on
|
||||
a spherical coordinate system. Results will be sorted by distance (nearest to farthest) from the reference point.
|
||||
@param key The key to be constrained.
|
||||
@param geopoint The reference point. A PFGeoPoint.
|
||||
@param maxDistance Maximum distance in kilometers.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinKilometers:(double)maxDistance;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's coordinates (specified via PFGeoPoint) be near
|
||||
a reference point and within the maximum distance specified (in radians). Distance is calculated based on
|
||||
angular distance on a sphere. Results will be sorted by distance (nearest to farthest) from the reference point.
|
||||
@param key The key to be constrained.
|
||||
@param geopoint The reference point. A PFGeoPoint.
|
||||
@param maxDistance Maximum distance in radians.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinRadians:(double)maxDistance;
|
||||
|
||||
/*!
|
||||
Add a constraint to the query that requires a particular key's coordinates (specified via PFGeoPoint) be
|
||||
contained within a given rectangular geographic bounding box.
|
||||
@param key The key to be constrained.
|
||||
@param southwest The lower-left inclusive corner of the box.
|
||||
@param northeast The upper-right inclusive corner of the box.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key withinGeoBoxFromSouthwest:(PFGeoPoint *)southwest toNortheast:(PFGeoPoint *)northeast;
|
||||
|
||||
/** @name Adding String Constraints */
|
||||
|
||||
/*!
|
||||
Add a regular expression constraint for finding string values that match the provided regular expression.
|
||||
This may be slow for large datasets.
|
||||
@param key The key that the string to match is stored in.
|
||||
@param regex The regular expression pattern to match.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key matchesRegex:(NSString *)regex;
|
||||
|
||||
/*!
|
||||
Add a regular expression constraint for finding string values that match the provided regular expression.
|
||||
This may be slow for large datasets.
|
||||
@param key The key that the string to match is stored in.
|
||||
@param regex The regular expression pattern to match.
|
||||
@param modifiers Any of the following supported PCRE modifiers:<br><code>i</code> - Case insensitive search<br><code>m</code> - Search across multiple lines of input
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key matchesRegex:(NSString *)regex modifiers:(NSString *)modifiers;
|
||||
|
||||
/*!
|
||||
Add a constraint for finding string values that contain a provided substring.
|
||||
This will be slow for large datasets.
|
||||
@param key The key that the string to match is stored in.
|
||||
@param substring The substring that the value must contain.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key containsString:(NSString *)substring;
|
||||
|
||||
/*!
|
||||
Add a constraint for finding string values that start with a provided prefix.
|
||||
This will use smart indexing, so it will be fast for large datasets.
|
||||
@param key The key that the string to match is stored in.
|
||||
@param prefix The substring that the value must start with.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key hasPrefix:(NSString *)prefix;
|
||||
|
||||
/*!
|
||||
Add a constraint for finding string values that end with a provided suffix.
|
||||
This will be slow for large datasets.
|
||||
@param key The key that the string to match is stored in.
|
||||
@param suffix The substring that the value must end with.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key hasSuffix:(NSString *)suffix;
|
||||
|
||||
/** @name Adding Subqueries */
|
||||
|
||||
/*!
|
||||
Returns a PFQuery that is the or of the passed in PFQuerys.
|
||||
@param queries The list of queries to or together.
|
||||
@result a PFQuery that is the or of the passed in PFQuerys.
|
||||
*/
|
||||
+ (PFQuery *)orQueryWithSubqueries:(NSArray *)queries;
|
||||
|
||||
/*!
|
||||
Adds a constraint that requires that a key's value matches a value in another key
|
||||
in objects returned by a sub query.
|
||||
@param key The key that the value is stored
|
||||
@param otherKey The key in objects in the returned by the sub query whose value should match
|
||||
@param query The query to run.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key matchesKey:(NSString *)otherKey inQuery:(PFQuery *)query;
|
||||
|
||||
/*!
|
||||
Adds a constraint that requires that a key's value NOT match a value in another key
|
||||
in objects returned by a sub query.
|
||||
@param key The key that the value is stored
|
||||
@param otherKey The key in objects in the returned by the sub query whose value should match
|
||||
@param query The query to run.
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key doesNotMatchKey:(NSString *)otherKey inQuery:(PFQuery *)query;
|
||||
|
||||
/*!
|
||||
Add a constraint that requires that a key's value matches a PFQuery constraint.
|
||||
This only works where the key's values are PFObjects or arrays of PFObjects.
|
||||
@param key The key that the value is stored in
|
||||
@param query The query the value should match
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key matchesQuery:(PFQuery *)query;
|
||||
|
||||
/*!
|
||||
Add a constraint that requires that a key's value to not match a PFQuery constraint.
|
||||
This only works where the key's values are PFObjects or arrays of PFObjects.
|
||||
@param key The key that the value is stored in
|
||||
@param query The query the value should not match
|
||||
*/
|
||||
- (void)whereKey:(NSString *)key doesNotMatchQuery:(PFQuery *)query;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Sorting
|
||||
|
||||
/** @name Sorting */
|
||||
|
||||
/*!
|
||||
Sort the results in ascending order with the given key.
|
||||
@param key The key to order by.
|
||||
*/
|
||||
- (void)orderByAscending:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Also sort in ascending order by the given key. The previous keys provided will
|
||||
precedence over this key.
|
||||
@param key The key to order bye
|
||||
*/
|
||||
- (void)addAscendingOrder:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Sort the results in descending order with the given key.
|
||||
@param key The key to order by.
|
||||
*/
|
||||
- (void)orderByDescending:(NSString *)key;
|
||||
/*!
|
||||
Also sort in descending order by the given key. The previous keys provided will
|
||||
precedence over this key.
|
||||
@param key The key to order bye
|
||||
*/
|
||||
- (void)addDescendingOrder:(NSString *)key;
|
||||
|
||||
/*!
|
||||
Sort the results in descending order with the given descriptor.
|
||||
@param sortDescriptor The NSSortDescriptor to order by.
|
||||
*/
|
||||
- (void)orderBySortDescriptor:(NSSortDescriptor *)sortDescriptor;
|
||||
|
||||
/*!
|
||||
Sort the results in descending order with the given descriptors.
|
||||
@param sortDescriptors An NSArray of NSSortDescriptor instances to order by.
|
||||
*/
|
||||
- (void)orderBySortDescriptors:(NSArray *)sortDescriptors;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Get methods
|
||||
|
||||
/** @name Getting Objects by ID */
|
||||
|
||||
/*!
|
||||
Returns a PFObject with a given class and id.
|
||||
@param objectClass The class name for the object that is being requested.
|
||||
@param objectId The id of the object that is being requested.
|
||||
@result The PFObject if found. Returns nil if the object isn't found, or if there was an error.
|
||||
*/
|
||||
+ (PFObject *)getObjectOfClass:(NSString *)objectClass
|
||||
objectId:(NSString *)objectId;
|
||||
|
||||
/*!
|
||||
Returns a PFObject with a given class and id and sets an error if necessary.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result The PFObject if found. Returns nil if the object isn't found, or if there was an error.
|
||||
*/
|
||||
+ (PFObject *)getObjectOfClass:(NSString *)objectClass
|
||||
objectId:(NSString *)objectId
|
||||
error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Returns a PFObject with the given id.
|
||||
|
||||
This mutates the PFQuery.
|
||||
|
||||
@param objectId The id of the object that is being requested.
|
||||
@result The PFObject if found. Returns nil if the object isn't found, or if there was an error.
|
||||
*/
|
||||
- (PFObject *)getObjectWithId:(NSString *)objectId;
|
||||
|
||||
/*!
|
||||
Returns a PFObject with the given id and sets an error if necessary.
|
||||
|
||||
This mutates the PFQuery
|
||||
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result The PFObject if found. Returns nil if the object isn't found, or if there was an error.
|
||||
*/
|
||||
- (PFObject *)getObjectWithId:(NSString *)objectId error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Gets a PFObject asynchronously and calls the given block with the result.
|
||||
|
||||
This mutates the PFQuery
|
||||
|
||||
@param block The block to execute. The block should have the following argument signature: (NSArray *object, NSError *error)
|
||||
*/
|
||||
- (void)getObjectInBackgroundWithId:(NSString *)objectId
|
||||
block:(PFObjectResultBlock)block;
|
||||
|
||||
/*!
|
||||
Gets a PFObject asynchronously.
|
||||
|
||||
This mutates the PFQuery
|
||||
|
||||
@param objectId The id of the object being requested.
|
||||
@param target The target for the callback selector.
|
||||
@param selector The selector for the callback. It should have the following signature: (void)callbackWithResult:(PFObject *)result error:(NSError *)error. result will be nil if error is set and vice versa.
|
||||
*/
|
||||
- (void)getObjectInBackgroundWithId:(NSString *)objectId
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Getting Users
|
||||
|
||||
/*! @name Getting User Objects */
|
||||
|
||||
/*!
|
||||
Returns a PFUser with a given id.
|
||||
@param objectId The id of the object that is being requested.
|
||||
@result The PFUser if found. Returns nil if the object isn't found, or if there was an error.
|
||||
*/
|
||||
+ (PFUser *)getUserObjectWithId:(NSString *)objectId;
|
||||
|
||||
/*!
|
||||
Returns a PFUser with a given class and id and sets an error if necessary.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result The PFUser if found. Returns nil if the object isn't found, or if there was an error.
|
||||
*/
|
||||
+ (PFUser *)getUserObjectWithId:(NSString *)objectId
|
||||
error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Deprecated. Please use [PFUser query] instead.
|
||||
*/
|
||||
+ (PFQuery *)queryForUser __attribute__ ((deprecated));
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Find methods
|
||||
|
||||
/** @name Getting all Matches for a Query */
|
||||
|
||||
/*!
|
||||
Finds objects based on the constructed query.
|
||||
@result Returns an array of PFObjects that were found.
|
||||
*/
|
||||
- (NSArray *)findObjects;
|
||||
|
||||
/*!
|
||||
Finds objects based on the constructed query and sets an error if there was one.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns an array of PFObjects that were found.
|
||||
*/
|
||||
- (NSArray *)findObjects:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Finds objects asynchronously and calls the given block with the results.
|
||||
@param block The block to execute. The block should have the following argument signature:(NSArray *objects, NSError *error)
|
||||
*/
|
||||
- (void)findObjectsInBackgroundWithBlock:(PFArrayResultBlock)block;
|
||||
|
||||
/*!
|
||||
Finds objects asynchronously and calls the given callback with the results.
|
||||
@param target The object to call the selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSArray *)result error:(NSError *)error. result will be nil if error is set and vice versa.
|
||||
*/
|
||||
- (void)findObjectsInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/** @name Getting the First Match in a Query */
|
||||
|
||||
/*!
|
||||
Gets an object based on the constructed query.
|
||||
|
||||
This mutates the PFQuery.
|
||||
|
||||
@result Returns a PFObject, or nil if none was found.
|
||||
*/
|
||||
- (PFObject *)getFirstObject;
|
||||
|
||||
/*!
|
||||
Gets an object based on the constructed query and sets an error if any occurred.
|
||||
|
||||
This mutates the PFQuery.
|
||||
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns a PFObject, or nil if none was found.
|
||||
*/
|
||||
- (PFObject *)getFirstObject:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Gets an object asynchronously and calls the given block with the result.
|
||||
|
||||
This mutates the PFQuery.
|
||||
|
||||
@param block The block to execute. The block should have the following argument signature:(PFObject *object, NSError *error) result will be nil if error is set OR no object was found matching the query. error will be nil if result is set OR if the query succeeded, but found no results.
|
||||
*/
|
||||
- (void)getFirstObjectInBackgroundWithBlock:(PFObjectResultBlock)block;
|
||||
|
||||
/*!
|
||||
Gets an object asynchronously and calls the given callback with the results.
|
||||
|
||||
This mutates the PFQuery.
|
||||
|
||||
@param target The object to call the selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(PFObject *)result error:(NSError *)error. result will be nil if error is set OR no object was found matching the query. error will be nil if result is set OR if the query succeeded, but found no results.
|
||||
*/
|
||||
- (void)getFirstObjectInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Count methods
|
||||
|
||||
/** @name Counting the Matches in a Query */
|
||||
|
||||
/*!
|
||||
Counts objects based on the constructed query.
|
||||
@result Returns the number of PFObjects that match the query, or -1 if there is an error.
|
||||
*/
|
||||
- (NSInteger)countObjects;
|
||||
|
||||
/*!
|
||||
Counts objects based on the constructed query and sets an error if there was one.
|
||||
@param error Pointer to an NSError that will be set if necessary.
|
||||
@result Returns the number of PFObjects that match the query, or -1 if there is an error.
|
||||
*/
|
||||
- (NSInteger)countObjects:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Counts objects asynchronously and calls the given block with the counts.
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(int count, NSError *error)
|
||||
*/
|
||||
- (void)countObjectsInBackgroundWithBlock:(PFIntegerResultBlock)block;
|
||||
|
||||
/*!
|
||||
Counts objects asynchronously and calls the given callback with the count.
|
||||
@param target The object to call the selector on.
|
||||
@param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. */
|
||||
- (void)countObjectsInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Cancel methods
|
||||
|
||||
/** @name Cancelling a Query */
|
||||
|
||||
/*!
|
||||
Cancels the current network request (if any). Ensures that callbacks won't be called.
|
||||
*/
|
||||
- (void)cancel;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Pagination properties
|
||||
|
||||
/** @name Paginating Results */
|
||||
/*!
|
||||
A limit on the number of objects to return. The default limit is 100, with a
|
||||
maximum of 1000 results being returned at a time.
|
||||
|
||||
Note: If you are calling findObject with limit=1, you may find it easier to use getFirst instead.
|
||||
*/
|
||||
@property (nonatomic) NSInteger limit;
|
||||
|
||||
/*!
|
||||
The number of objects to skip before returning any.
|
||||
*/
|
||||
@property (nonatomic) NSInteger skip;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Cache methods
|
||||
|
||||
/** @name Controlling Caching Behavior */
|
||||
|
||||
/*!
|
||||
The cache policy to use for requests.
|
||||
*/
|
||||
@property (readwrite, assign) PFCachePolicy cachePolicy;
|
||||
|
||||
/* !
|
||||
The age after which a cached value will be ignored
|
||||
*/
|
||||
@property (readwrite, assign) NSTimeInterval maxCacheAge;
|
||||
|
||||
/*!
|
||||
Returns whether there is a cached result for this query.
|
||||
@result YES if there is a cached result for this query, and NO otherwise.
|
||||
*/
|
||||
- (BOOL)hasCachedResult;
|
||||
|
||||
/*!
|
||||
Clears the cached result for this query. If there is no cached result, this is a noop.
|
||||
*/
|
||||
- (void)clearCachedResult;
|
||||
|
||||
/*!
|
||||
Clears the cached results for all queries.
|
||||
*/
|
||||
+ (void)clearAllCachedResults;
|
||||
|
||||
#pragma mark - Advanced Settings
|
||||
|
||||
/** @name Advanced Settings */
|
||||
|
||||
/*!
|
||||
Whether or not performance tracing should be done on the query.
|
||||
This should not be set in most cases.
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL trace;
|
||||
|
||||
|
||||
@end
|
||||
152
Parse.framework/Versions/1.2.13/Headers/PFQueryTableViewController.h
Executable file
@@ -0,0 +1,152 @@
|
||||
//
|
||||
// PFUITableViewController.h
|
||||
// Posse
|
||||
//
|
||||
// Created by James Yu on 11/20/11.
|
||||
// Copyright (c) 2011 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "PFQuery.h"
|
||||
#import "PFTableViewCell.h"
|
||||
#import "PF_EGORefreshTableHeaderView.h"
|
||||
|
||||
@interface PFQueryTableViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate, PF_EGORefreshTableHeaderDelegate>
|
||||
|
||||
/*! @name Creating a PFQueryTableViewController */
|
||||
|
||||
/*!
|
||||
The designated initializer.
|
||||
Initializes with a class name of the PFObjects that will be associated with this table.
|
||||
@param style The UITableViewStyle for the table
|
||||
@param aClassName The class name of the PFObjects that this table will display
|
||||
@result The initialized PFQueryTableViewController
|
||||
*/
|
||||
- (id)initWithStyle:(UITableViewStyle)style className:(NSString *)aClassName;
|
||||
|
||||
/*!
|
||||
Initializes with a class name of the PFObjects that will be associated with this table.
|
||||
@param aClassName The class name of the PFObjects that this table will display
|
||||
@result The initialized PFQueryTableViewController
|
||||
*/
|
||||
- (id)initWithClassName:(NSString *)aClassName;
|
||||
|
||||
/*! @name Configuring Behavior */
|
||||
|
||||
/// The class of the PFObject this table will use as a datasource
|
||||
@property (nonatomic, retain) NSString *parseClassName;
|
||||
|
||||
/// The key to use to display for the cell text label. This won't apply if you override tableView:cellForRowAtIndexPath:object:
|
||||
@property (nonatomic, retain) NSString *textKey;
|
||||
|
||||
/// The key to use to display for the cell image view. This won't apply if you override tableView:cellForRowAtIndexPath:object:
|
||||
@property (nonatomic, retain) NSString *imageKey;
|
||||
|
||||
/// The image to use as a placeholder for the cell images. This won't apply if you override tableView:cellForRowAtIndexPath:object:
|
||||
@property (nonatomic, retain) UIImage *placeholderImage;
|
||||
|
||||
/// Whether the table should use the default loading view (default:YES)
|
||||
@property (nonatomic, assign) BOOL loadingViewEnabled;
|
||||
|
||||
/// Whether the table should use the built-in pull-to-refresh feature (default:YES)
|
||||
@property (nonatomic, assign) BOOL pullToRefreshEnabled;
|
||||
|
||||
/// Whether the table should use the built-in pagination feature (default:YES)
|
||||
@property (nonatomic, assign) BOOL paginationEnabled;
|
||||
|
||||
/// The number of objects to show per page (default: 25)
|
||||
@property (nonatomic, assign) NSUInteger objectsPerPage;
|
||||
|
||||
/// Whether the table is actively loading new data from the server
|
||||
@property (nonatomic, assign) BOOL isLoading;
|
||||
|
||||
/*! @name Responding to Events */
|
||||
|
||||
/*!
|
||||
Called when objects have loaded from Parse. If you override this method, you must
|
||||
call [super objectsDidLoad:] in your implementation.
|
||||
@param error The Parse error from running the PFQuery, if there was any.
|
||||
*/
|
||||
- (void)objectsDidLoad:(NSError *)error;
|
||||
|
||||
/*!
|
||||
Called when objects will loaded from Parse. If you override this method, you must
|
||||
call [super objectsWillLoad] in your implementation.
|
||||
*/
|
||||
- (void)objectsWillLoad;
|
||||
|
||||
/*! @name Accessing Results */
|
||||
|
||||
/// The array of PFObjects that is the UITableView data source
|
||||
@property (nonatomic, retain, readonly) NSArray *objects;
|
||||
|
||||
/*!
|
||||
Returns an object at a particular indexPath. The default impementation returns
|
||||
the object at indexPath.row. If you want to return objects in a different
|
||||
indexPath order, like for sections, override this method.
|
||||
@param indexPath The indexPath
|
||||
@result The object at the specified index
|
||||
*/
|
||||
- (PFObject *)objectAtIndexPath:(NSIndexPath *)indexPath;
|
||||
|
||||
/*! @name Querying */
|
||||
|
||||
/*!
|
||||
Override to construct your own custom PFQuery to get the objects.
|
||||
@result PFQuery that loadObjects will use to the objects for this table.
|
||||
*/
|
||||
- (PFQuery *)queryForTable;
|
||||
|
||||
/*!
|
||||
Clears the table of all objects.
|
||||
*/
|
||||
- (void)clear;
|
||||
|
||||
/*!
|
||||
Clears the table and loads the first page of objects.
|
||||
*/
|
||||
- (void)loadObjects;
|
||||
|
||||
/*!
|
||||
Loads the objects of the className at the specified page and appends it to the
|
||||
objects already loaded and refreshes the table.
|
||||
@param page The page of objects to load.
|
||||
@param clear Whether to clear the table after receiving the objects.
|
||||
*/
|
||||
- (void)loadObjects:(NSInteger)page clear:(BOOL)clear;
|
||||
|
||||
/*!
|
||||
Loads the next page of objects, appends to table, and refreshes.
|
||||
*/
|
||||
- (void)loadNextPage;
|
||||
|
||||
/*! @name Data Source Methods */
|
||||
|
||||
/*!
|
||||
Override this method to customize each cell given a PFObject that is loaded. If you
|
||||
don't override this method, it will use a default style cell and display either
|
||||
the first data key from the object, or it will display the key as specified
|
||||
with keyToDisplay.
|
||||
|
||||
The cell should inherit from PFTableViewCell which is a subclass of UITableViewCell.
|
||||
|
||||
@param tableView The table view object associated with this controller.
|
||||
@param indexPath The indexPath of the cell.
|
||||
@param object The PFObject that is associated with the cell.
|
||||
@result The cell that represents this object.
|
||||
*/
|
||||
- (PFTableViewCell *)tableView:(UITableView *)tableView
|
||||
cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
object:(PFObject *)object;
|
||||
|
||||
/*!
|
||||
Override this method to customize the cell that allows the user to load the
|
||||
next page when pagination is turned on.
|
||||
@param tableView The table view object associated with this controller.
|
||||
@param indexPath The indexPath of the cell.
|
||||
@result The cell that allows the user to paginate.
|
||||
*/
|
||||
- (PFTableViewCell *)tableView:(UITableView *)tableView cellForNextPageAtIndexPath:(NSIndexPath *)indexPath;
|
||||
|
||||
|
||||
@end
|
||||
44
Parse.framework/Versions/1.2.13/Headers/PFRelation.h
Executable file
@@ -0,0 +1,44 @@
|
||||
//
|
||||
// PFRelation.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Shyam Jayaraman on 5/11/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFObject.h"
|
||||
#import "PFQuery.h"
|
||||
|
||||
/*!
|
||||
A class that is used to access all of the children of a many-to-many relationship. Each instance
|
||||
of PFRelation is associated with a particular parent object and key.
|
||||
*/
|
||||
@interface PFRelation : NSObject
|
||||
|
||||
@property (nonatomic, retain) NSString *targetClass;
|
||||
|
||||
|
||||
#pragma mark Accessing objects
|
||||
/*!
|
||||
@return A ParseQuery that can be used to get objects in this relation.
|
||||
*/
|
||||
- (PFQuery *)query;
|
||||
|
||||
|
||||
#pragma mark Modifying relations
|
||||
|
||||
/*!
|
||||
Adds a relation to the passed in object.
|
||||
@param object ParseObject to add relation to.
|
||||
*/
|
||||
- (void)addObject:(PFObject *)object;
|
||||
|
||||
/*!
|
||||
Removes a relation to the passed in object.
|
||||
@param object ParseObject to add relation to.
|
||||
*/
|
||||
- (void)removeObject:(PFObject *)object;
|
||||
@end
|
||||
|
||||
|
||||
98
Parse.framework/Versions/1.2.13/Headers/PFRole.h
Executable file
@@ -0,0 +1,98 @@
|
||||
//
|
||||
// PFRole.h
|
||||
// Parse
|
||||
//
|
||||
// Created by David Poll on 5/17/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "PFObject.h"
|
||||
#import "PFSubclassing.h"
|
||||
|
||||
/*!
|
||||
Represents a Role on the Parse server. PFRoles represent groupings
|
||||
of PFUsers for the purposes of granting permissions (e.g. specifying a
|
||||
PFACL for a PFObject). Roles are specified by their sets of child users
|
||||
and child roles, all of which are granted any permissions that the
|
||||
parent role has.<br />
|
||||
<br />
|
||||
Roles must have a name (which cannot be changed after creation of the role),
|
||||
and must specify an ACL.
|
||||
*/
|
||||
@interface PFRole : PFObject<PFSubclassing>
|
||||
|
||||
#pragma mark Creating a New Role
|
||||
|
||||
/** @name Creating a New Role */
|
||||
|
||||
/*!
|
||||
Constructs a new PFRole with the given name. If no default ACL has been
|
||||
specified, you must provide an ACL for the role.
|
||||
|
||||
@param name The name of the Role to create.
|
||||
*/
|
||||
- (id)initWithName:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Constructs a new PFRole with the given name.
|
||||
|
||||
@param name The name of the Role to create.
|
||||
@param acl The ACL for this role. Roles must have an ACL.
|
||||
*/
|
||||
- (id)initWithName:(NSString *)name acl:(PFACL *)acl;
|
||||
|
||||
/*!
|
||||
Constructs a new PFRole with the given name. If no default ACL has been
|
||||
specified, you must provide an ACL for the role.
|
||||
|
||||
@param name The name of the Role to create.
|
||||
*/
|
||||
+ (instancetype)roleWithName:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Constructs a new PFRole with the given name.
|
||||
|
||||
@param name The name of the Role to create.
|
||||
@param acl The ACL for this role. Roles must have an ACL.
|
||||
*/
|
||||
+ (instancetype)roleWithName:(NSString *)name acl:(PFACL *)acl;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Role-specific Properties
|
||||
|
||||
/** @name Role-specific Properties */
|
||||
|
||||
/*!
|
||||
Gets or sets the name for a role. This value must be set before the role
|
||||
has been saved to the server, and cannot be set once the role has been
|
||||
saved.<br />
|
||||
<br />
|
||||
A role's name can only contain alphanumeric characters, _, -, and spaces.
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
|
||||
/*!
|
||||
Gets the PFRelation for the PFUsers that are direct children of this role.
|
||||
These users are granted any privileges that this role has been granted
|
||||
(e.g. read or write access through ACLs). You can add or remove users from
|
||||
the role through this relation.
|
||||
*/
|
||||
@property (nonatomic, readonly, retain) PFRelation *users;
|
||||
|
||||
/*!
|
||||
Gets the PFRelation for the PFRoles that are direct children of this role.
|
||||
These roles' users are granted any privileges that this role has been granted
|
||||
(e.g. read or write access through ACLs). You can add or remove child roles
|
||||
from this role through this relation.
|
||||
*/
|
||||
@property (nonatomic, readonly, retain) PFRelation *roles;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Querying for Roles
|
||||
|
||||
/** @name Querying for Roles */
|
||||
+ (PFQuery *)query;
|
||||
|
||||
@end
|
||||
62
Parse.framework/Versions/1.2.13/Headers/PFSignUpView.h
Executable file
@@ -0,0 +1,62 @@
|
||||
//
|
||||
// PFLogInView.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Qian Wang on 3/9/12.
|
||||
// Copyright (c) 2012. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
typedef enum {
|
||||
PFSignUpFieldsUsernameAndPassword = 0,
|
||||
PFSignUpFieldsEmail = 1 << 0,
|
||||
PFSignUpFieldsAdditional = 1 << 1, // this field can be used for something else
|
||||
PFSignUpFieldsSignUpButton = 1 << 2,
|
||||
PFSignUpFieldsDismissButton = 1 << 3,
|
||||
PFSignUpFieldsDefault = PFSignUpFieldsUsernameAndPassword | PFSignUpFieldsEmail | PFSignUpFieldsSignUpButton | PFSignUpFieldsDismissButton
|
||||
} PFSignUpFields;
|
||||
|
||||
/*!
|
||||
The class provides a standard sign up interface for authenticating a PFUser.
|
||||
*/
|
||||
@interface PFSignUpView : UIScrollView
|
||||
|
||||
/*! @name Creating Sign Up View */
|
||||
/*!
|
||||
Initializes the view with the specified sign up elements.
|
||||
@param fields A bitmask specifying the sign up elements which are enabled in the view
|
||||
*/
|
||||
- (id)initWithFields:(PFSignUpFields) fields;
|
||||
|
||||
/*! @name Customizing the Logo */
|
||||
|
||||
/// The logo. By default, it is the Parse logo.
|
||||
@property (nonatomic, retain) UIView *logo;
|
||||
|
||||
/*! @name Accessing Sign Up Elements */
|
||||
|
||||
/// The bitmask which specifies the enabled sign up elements in the view
|
||||
@property (nonatomic, readonly, assign) PFSignUpFields fields;
|
||||
|
||||
/// The username text field.
|
||||
@property (nonatomic, readonly, retain) UITextField *usernameField;
|
||||
|
||||
/// The password text field.
|
||||
@property (nonatomic, readonly, retain) UITextField *passwordField;
|
||||
|
||||
/// The email text field. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UITextField *emailField;
|
||||
|
||||
/// The additional text field. It is nil if the element is not enabled.
|
||||
/// This field is intended to be customized.
|
||||
@property (nonatomic, readonly, retain) UITextField *additionalField;
|
||||
|
||||
/// The sign up button. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UIButton *signUpButton;
|
||||
|
||||
/// The dismiss button. It is nil if the element is not enabled.
|
||||
@property (nonatomic, readonly, retain) UIButton *dismissButton;
|
||||
@end
|
||||
|
||||
|
||||
81
Parse.framework/Versions/1.2.13/Headers/PFSignUpViewController.h
Executable file
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// PFLogInViewController.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Andrew Wang on 3/8/12.
|
||||
// Copyright (c) 2012. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "PFSignUpView.h"
|
||||
#import "PFUser.h"
|
||||
|
||||
@protocol PFSignUpViewControllerDelegate;
|
||||
|
||||
/*!
|
||||
The class that presents and manages a standard authentication interface for signing up a PFUser.
|
||||
*/
|
||||
@interface PFSignUpViewController : UIViewController <UITextFieldDelegate, UIScrollViewDelegate>
|
||||
|
||||
/*! @name Configuring Sign Up Elements */
|
||||
|
||||
///
|
||||
/*!
|
||||
A bitmask specifying the log in elements which are enabled in the view.
|
||||
enum {
|
||||
PFSignUpFieldsUsernameAndPassword = 0,
|
||||
PFSignUpFieldsEmail = 1 << 0,
|
||||
PFSignUpFieldsAdditional = 1 << 1, // this field can be used for something else
|
||||
PFSignUpFieldsSignUpButton = 1 << 2,
|
||||
PFSignUpFieldsDismissButton = 1 << 3,
|
||||
PFSignUpFieldsDefault = PFSignUpFieldsUsernameAndPassword | PFSignUpFieldsEmail | PFSignUpFieldsSignUpButton | PFSignUpFieldsDismissButton
|
||||
};
|
||||
*/
|
||||
@property (nonatomic) PFSignUpFields fields;
|
||||
|
||||
/// The sign up view. It contains all the enabled log in elements.
|
||||
@property (nonatomic, readonly, retain) PFSignUpView *signUpView;
|
||||
|
||||
/*! @name Configuring Sign Up Behaviors */
|
||||
/// The delegate that responds to the control events of PFSignUpViewController.
|
||||
@property (nonatomic, assign) id<PFSignUpViewControllerDelegate> delegate;
|
||||
|
||||
@end
|
||||
|
||||
/*! @name Notifications */
|
||||
/// The notification is posted immediately after the sign up succeeds.
|
||||
extern NSString *const PFSignUpSuccessNotification;
|
||||
|
||||
/// The notification is posted immediately after the sign up fails.
|
||||
/// If the delegate prevents the sign up to start, the notification is not sent.
|
||||
extern NSString *const PFSignUpFailureNotification;
|
||||
|
||||
/// The notification is posted immediately after the user cancels sign up.
|
||||
extern NSString *const PFSignUpCancelNotification;
|
||||
|
||||
/*!
|
||||
The protocol defines methods a delegate of a PFSignUpViewController should implement.
|
||||
All methods of the protocol are optional.
|
||||
*/
|
||||
@protocol PFSignUpViewControllerDelegate <NSObject>
|
||||
@optional
|
||||
|
||||
/*! @name Customizing Behavior */
|
||||
|
||||
/*!
|
||||
Sent to the delegate to determine whether the sign up request should be submitted to the server.
|
||||
@param info a dictionary which contains all sign up information that the user entered.
|
||||
@result a boolean indicating whether the sign up should proceed.
|
||||
*/
|
||||
- (BOOL)signUpViewController:(PFSignUpViewController *)signUpController shouldBeginSignUp:(NSDictionary *)info;
|
||||
|
||||
/// Sent to the delegate when a PFUser is signed up.
|
||||
- (void)signUpViewController:(PFSignUpViewController *)signUpController didSignUpUser:(PFUser *)user;
|
||||
|
||||
/// Sent to the delegate when the sign up attempt fails.
|
||||
- (void)signUpViewController:(PFSignUpViewController *)signUpController didFailToSignUpWithError:(NSError *)error;
|
||||
|
||||
/// Sent to the delegate when the sign up screen is dismissed.
|
||||
- (void)signUpViewControllerDidCancelSignUp:(PFSignUpViewController *)signUpController;
|
||||
@end
|
||||
|
||||
54
Parse.framework/Versions/1.2.13/Headers/PFSubclassing.h
Executable file
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// PFSubclassing.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Thomas Bouldin on 3/11/13.
|
||||
// Copyright (c) 2013 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class PFQuery;
|
||||
|
||||
/*!
|
||||
If a subclass of PFObject conforms to PFSubclassing and calls registerSubclass, Parse will be able to use that class as the native class for a Parse cloud object.
|
||||
|
||||
Classes conforming to this protocol should subclass PFObject and include PFObject+Subclass.h in their implementation file. This ensures the methods in the Subclass category of PFObject are exposed in its subclasses only.
|
||||
*/
|
||||
@protocol PFSubclassing
|
||||
|
||||
/*!
|
||||
Constructs an object of the most specific class known to implement parseClassName.
|
||||
This method takes care to help PFObject subclasses be subclassed themselves.
|
||||
For example, [PFUser object] returns a PFUser by default but will return an
|
||||
object of a registered subclass instead if one is known.
|
||||
A default implementation is provided by PFObject which should always be sufficient.
|
||||
@result Returns the object that is instantiated.
|
||||
*/
|
||||
+ (instancetype)object;
|
||||
|
||||
/*!
|
||||
Creates a reference to an existing PFObject for use in creating associations between PFObjects. Calling isDataAvailable on this
|
||||
object will return NO until fetchIfNeeded or refresh has been called. No network request will be made.
|
||||
A default implementation is provided by PFObject which should always be sufficient.
|
||||
@param objectId The object id for the referenced object.
|
||||
@result A PFObject without data.
|
||||
*/
|
||||
+ (instancetype)objectWithoutDataWithObjectId:(NSString *)objectId;
|
||||
|
||||
/*! The name of the class as seen in the REST API. */
|
||||
+ (NSString *)parseClassName;
|
||||
|
||||
/*!
|
||||
Create a query which returns objects of this type.
|
||||
A default implementation is provided by PFObject which should always be sufficient.
|
||||
*/
|
||||
+ (PFQuery *)query;
|
||||
|
||||
/*!
|
||||
Lets Parse know this class should be used to instantiate all objects with class type parseClassName.
|
||||
This method must be called before [Parse setApplicationId:clientKey:]
|
||||
*/
|
||||
+ (void)registerSubclass;
|
||||
|
||||
@end
|
||||
19
Parse.framework/Versions/1.2.13/Headers/PFTableViewCell.h
Executable file
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// PFImageViewCell.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Qian Wang on 5/16/12.
|
||||
// Copyright (c) 2012 Parse Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "PFImageView.h"
|
||||
|
||||
/*!
|
||||
The PFTableViewCell is a table view cell which can download and display remote images stored on Parse's server. When used in a PFQueryTableViewController, the downloading and displaying of the remote images are automatically managed by the PFQueryTableViewController.
|
||||
*/
|
||||
@interface PFTableViewCell : UITableViewCell
|
||||
|
||||
/// The imageView of the table view cell. PFImageView supports remote image downloading.
|
||||
@property (nonatomic, readonly, retain) PFImageView *imageView;
|
||||
@end
|
||||
203
Parse.framework/Versions/1.2.13/Headers/PFTwitterUtils.h
Executable file
@@ -0,0 +1,203 @@
|
||||
//
|
||||
// PFTwitterUtils.h
|
||||
// Copyright (c) 2012 Parse, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PF_Twitter.h"
|
||||
#import "PFUser.h"
|
||||
#import "PFConstants.h"
|
||||
|
||||
/*!
|
||||
Provides utility functions for working with Twitter in a Parse application.
|
||||
|
||||
This class is currently for iOS only.
|
||||
*/
|
||||
@interface PFTwitterUtils : NSObject
|
||||
|
||||
/** @name Interacting With Twitter */
|
||||
|
||||
/*!
|
||||
Gets the instance of the Twitter object that Parse uses.
|
||||
@result The Twitter instance.
|
||||
*/
|
||||
+ (PF_Twitter *)twitter;
|
||||
|
||||
/*!
|
||||
Initializes the Twitter singleton. You must invoke this in order to use the Twitter functionality in Parse.
|
||||
@param consumerKey Your Twitter application's consumer key.
|
||||
@param consumerSecret Your Twitter application's consumer secret.
|
||||
*/
|
||||
+ (void)initializeWithConsumerKey:(NSString *)consumerKey
|
||||
consumerSecret:(NSString *)consumerSecret;
|
||||
|
||||
/*!
|
||||
Whether the user has their account linked to Twitter.
|
||||
@param user User to check for a Twitter link. The user must be logged in on this device.
|
||||
@result True if the user has their account linked to Twitter.
|
||||
*/
|
||||
+ (BOOL)isLinkedWithUser:(PFUser *)user;
|
||||
|
||||
/** @name Logging In & Creating Twitter-Linked Users */
|
||||
|
||||
/*!
|
||||
Logs in a user using Twitter. This method delegates to Twitter to authenticate
|
||||
the user, and then automatically logs in (or creates, in the case where it is a new user)
|
||||
a PFUser.
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(PFUser *user, NSError *error)
|
||||
*/
|
||||
+ (void)logInWithBlock:(PFUserResultBlock)block;
|
||||
|
||||
/*!
|
||||
Logs in a user using Twitter. This method delegates to Twitter to authenticate
|
||||
the user, and then automatically logs in (or creates, in the case where it is a new user)
|
||||
a PFUser. The selector for the callback should look like: (PFUser *)user error:(NSError **)error
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchrounous request is complete.
|
||||
*/
|
||||
+ (void)logInWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Logs in a user using Twitter. Allows you to handle user login to Twitter, then provide authentication
|
||||
data to log in (or create, in the case where it is a new user) the PFUser.
|
||||
@param twitterId The id of the Twitter user being linked
|
||||
@param screenName The screen name of the Twitter user being linked
|
||||
@param authToken The auth token for the user's session
|
||||
@param authTokenSecret The auth token secret for the user's session
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(PFUser *user, NSError *error)
|
||||
*/
|
||||
+ (void)logInWithTwitterId:(NSString *)twitterId
|
||||
screenName:(NSString *)screenName
|
||||
authToken:(NSString *)authToken
|
||||
authTokenSecret:(NSString *)authTokenSecret
|
||||
block:(PFUserResultBlock)block;
|
||||
|
||||
/*!
|
||||
Logs in a user using Twitter. Allows you to handle user login to Twitter, then provide authentication
|
||||
data to log in (or create, in the case where it is a new user) the PFUser.
|
||||
The selector for the callback should look like: (PFUser *)user error:(NSError *)error
|
||||
@param twitterId The id of the Twitter user being linked
|
||||
@param screenName The screen name of the Twitter user being linked
|
||||
@param authToken The auth token for the user's session
|
||||
@param authTokenSecret The auth token secret for the user's session
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchronous request is complete
|
||||
*/
|
||||
+ (void)logInWithTwitterId:(NSString *)twitterId
|
||||
screenName:(NSString *)screenName
|
||||
authToken:(NSString *)authToken
|
||||
authTokenSecret:(NSString *)authTokenSecret
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/** @name Linking Users with Twitter */
|
||||
|
||||
/*!
|
||||
Links Twitter to an existing PFUser. This method delegates to Twitter to authenticate
|
||||
the user, and then automatically links the account to the PFUser.
|
||||
@param user User to link to Twitter.
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user;
|
||||
|
||||
/*!
|
||||
Links Twitter to an existing PFUser. This method delegates to Twitter to authenticate
|
||||
the user, and then automatically links the account to the PFUser.
|
||||
@param user User to link to Twitter.
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(BOOL *success, NSError *error)
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Links Twitter to an existing PFUser. This method delegates to Twitter to authenticate
|
||||
the user, and then automatically links the account to the PFUser.
|
||||
The selector for the callback should look like: (NSNumber *)result error:(NSError *)error
|
||||
@param user User to link to Twitter.
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchrounous request is complete.
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Links Twitter to an existing PFUser. Allows you to handle user login to Twitter, then provide authentication
|
||||
data to link the account to the PFUser.
|
||||
@param user User to link to Twitter.
|
||||
@param twitterId The id of the Twitter user being linked
|
||||
@param screenName The screen name of the Twitter user being linked
|
||||
@param authToken The auth token for the user's session
|
||||
@param authTokenSecret The auth token secret for the user's session
|
||||
@param block The block to execute. The block should have the following argument signature:
|
||||
(BOOL *success, NSError *error)
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user
|
||||
twitterId:(NSString *)twitterId
|
||||
screenName:(NSString *)screenName
|
||||
authToken:(NSString *)authToken
|
||||
authTokenSecret:(NSString *)authTokenSecret
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Links Twitter to an existing PFUser. Allows you to handle user login to Twitter, then provide authentication
|
||||
data to link the account to the PFUser.
|
||||
The selector for the callback should look like: (NSNumber *)result error:(NSError *)error
|
||||
@param user User to link to Twitter.
|
||||
@param twitterId The id of the Twitter user being linked
|
||||
@param screenName The screen name of the Twitter user being linked
|
||||
@param authToken The auth token for the user's session
|
||||
@param authTokenSecret The auth token secret for the user's session
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchronous request is complete
|
||||
*/
|
||||
+ (void)linkUser:(PFUser *)user
|
||||
twitterId:(NSString *)twitterId
|
||||
screenName:(NSString *)screenName
|
||||
authToken:(NSString *)authToken
|
||||
authTokenSecret:(NSString *)authTokenSecret
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/** @name Unlinking Users from Twitter */
|
||||
|
||||
/*!
|
||||
Unlinks the PFUser from a Twitter account.
|
||||
@param user User to unlink from Twitter.
|
||||
@result Returns true if the unlink was successful.
|
||||
*/
|
||||
+ (BOOL)unlinkUser:(PFUser *)user;
|
||||
|
||||
/*!
|
||||
Unlinks the PFUser from a Twitter account.
|
||||
@param user User to unlink from Twitter.
|
||||
@param error Error object to set on error.
|
||||
@result Returns true if the unlink was successful.
|
||||
*/
|
||||
+ (BOOL)unlinkUser:(PFUser *)user error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to unlink a user from a Twitter account.
|
||||
@param user User to unlink from Twitter.
|
||||
*/
|
||||
+ (void)unlinkUserInBackground:(PFUser *)user;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to unlink a user from a Twitter account.
|
||||
@param user User to unlink from Twitter.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)unlinkUserInBackground:(PFUser *)user
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to unlink a user from a Twitter account.
|
||||
@param user User to unlink from Twitter
|
||||
@param target Target object for the selector
|
||||
@param selector The selector that will be called when the asynchrounous request is complete.
|
||||
*/
|
||||
+ (void)unlinkUserInBackground:(PFUser *)user
|
||||
target:(id)target selector:(SEL)selector;
|
||||
|
||||
@end
|
||||
236
Parse.framework/Versions/1.2.13/Headers/PFUser.h
Executable file
@@ -0,0 +1,236 @@
|
||||
// PFUser.h
|
||||
// Copyright 2011 Parse, Inc. All rights reserved.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFConstants.h"
|
||||
#import "PFObject.h"
|
||||
#import "PFSubclassing.h"
|
||||
|
||||
@class PFQuery;
|
||||
|
||||
/*!
|
||||
A Parse Framework User Object that is a local representation of a user persisted to the Parse cloud. This class
|
||||
is a subclass of a PFObject, and retains the same functionality of a PFObject, but also extends it with various
|
||||
user specific methods, like authentication, signing up, and validation uniqueness.
|
||||
|
||||
Many APIs responsible for linking a PFUser with Facebook or Twitter have been deprecated in favor of dedicated
|
||||
utilities for each social network. See PFFacebookUtils and PFTwitterUtils for more information.
|
||||
*/
|
||||
|
||||
@interface PFUser : PFObject<PFSubclassing>
|
||||
|
||||
/*! The name of the PFUser class in the REST API. This is a required
|
||||
* PFSubclassing method */
|
||||
+ (NSString *)parseClassName;
|
||||
|
||||
/** @name Accessing the Current User */
|
||||
|
||||
/*!
|
||||
Gets the currently logged in user from disk and returns an instance of it.
|
||||
@result Returns a PFUser that is the currently logged in user. If there is none, returns nil.
|
||||
*/
|
||||
+ (instancetype)currentUser;
|
||||
|
||||
/// The session token for the PFUser. This is set by the server upon successful authentication.
|
||||
@property (nonatomic, retain) NSString *sessionToken;
|
||||
|
||||
/// Whether the PFUser was just created from a request. This is only set after a Facebook or Twitter login.
|
||||
@property (readonly, assign) BOOL isNew;
|
||||
|
||||
/*!
|
||||
Whether the user is an authenticated object for the device. An authenticated PFUser is one that is obtained via
|
||||
a signUp or logIn method. An authenticated object is required in order to save (with altered values) or delete it.
|
||||
@result Returns whether the user is authenticated.
|
||||
*/
|
||||
- (BOOL)isAuthenticated;
|
||||
|
||||
/** @name Creating a New User */
|
||||
|
||||
/*!
|
||||
Creates a new PFUser object.
|
||||
@result Returns a new PFUser object.
|
||||
*/
|
||||
+ (PFUser *)user;
|
||||
|
||||
/*!
|
||||
Enables automatic creation of anonymous users. After calling this method, [PFUser currentUser] will always have a value.
|
||||
The user will only be created on the server once the user has been saved, or once an object with a relation to that user or
|
||||
an ACL that refers to the user has been saved.
|
||||
|
||||
Note: saveEventually will not work if an item being saved has a relation to an automatic user that has never been saved.
|
||||
*/
|
||||
+ (void)enableAutomaticUser;
|
||||
|
||||
/// The username for the PFUser.
|
||||
@property (nonatomic, retain) NSString *username;
|
||||
|
||||
/**
|
||||
The password for the PFUser. This will not be filled in from the server with
|
||||
the password. It is only meant to be set.
|
||||
*/
|
||||
@property (nonatomic, retain) NSString *password;
|
||||
|
||||
/// The email for the PFUser.
|
||||
@property (nonatomic, retain) NSString *email;
|
||||
|
||||
/*!
|
||||
Signs up the user. Make sure that password and username are set. This will also enforce that the username isn't already taken.
|
||||
@result Returns true if the sign up was successful.
|
||||
*/
|
||||
- (BOOL)signUp;
|
||||
|
||||
/*!
|
||||
Signs up the user. Make sure that password and username are set. This will also enforce that the username isn't already taken.
|
||||
@param error Error object to set on error.
|
||||
@result Returns whether the sign up was successful.
|
||||
*/
|
||||
- (BOOL)signUp:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Signs up the user asynchronously. Make sure that password and username are set. This will also enforce that the username isn't already taken.
|
||||
*/
|
||||
- (void)signUpInBackground;
|
||||
|
||||
/*!
|
||||
Signs up the user asynchronously. Make sure that password and username are set. This will also enforce that the username isn't already taken.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
- (void)signUpInBackgroundWithBlock:(PFBooleanResultBlock)block;
|
||||
|
||||
/*!
|
||||
Signs up the user asynchronously. Make sure that password and username are set. This will also enforce that the username isn't already taken.
|
||||
@param target Target object for the selector.
|
||||
@param selector The selector that will be called when the asynchrounous request is complete. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError **)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
- (void)signUpInBackgroundWithTarget:(id)target selector:(SEL)selector;
|
||||
|
||||
/** @name Logging in */
|
||||
|
||||
/*!
|
||||
Makes a request to login a user with specified credentials. Returns an instance
|
||||
of the successfully logged in PFUser. This will also cache the user locally so
|
||||
that calls to userFromCurrentUser will use the latest logged in user.
|
||||
@param username The username of the user.
|
||||
@param password The password of the user.
|
||||
@result Returns an instance of the PFUser on success. If login failed for either wrong password or wrong username, returns nil.
|
||||
*/
|
||||
+ (instancetype)logInWithUsername:(NSString *)username
|
||||
password:(NSString *)password;
|
||||
|
||||
/*!
|
||||
Makes a request to login a user with specified credentials. Returns an
|
||||
instance of the successfully logged in PFUser. This will also cache the user
|
||||
locally so that calls to userFromCurrentUser will use the latest logged in user.
|
||||
@param username The username of the user.
|
||||
@param password The password of the user.
|
||||
@param error The error object to set on error.
|
||||
@result Returns an instance of the PFUser on success. If login failed for either wrong password or wrong username, returns nil.
|
||||
*/
|
||||
+ (instancetype)logInWithUsername:(NSString *)username
|
||||
password:(NSString *)password
|
||||
error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to login a user with specified credentials.
|
||||
Returns an instance of the successfully logged in PFUser. This will also cache
|
||||
the user locally so that calls to userFromCurrentUser will use the latest logged in user.
|
||||
@param username The username of the user.
|
||||
@param password The password of the user.
|
||||
*/
|
||||
+ (void)logInWithUsernameInBackground:(NSString *)username
|
||||
password:(NSString *)password;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to login a user with specified credentials.
|
||||
Returns an instance of the successfully logged in PFUser. This will also cache
|
||||
the user locally so that calls to userFromCurrentUser will use the latest logged in user.
|
||||
The selector for the callback should look like: myCallback:(PFUser *)user error:(NSError **)error
|
||||
@param username The username of the user.
|
||||
@param password The password of the user.
|
||||
@param target Target object for the selector.
|
||||
@param selector The selector that will be called when the asynchrounous request is complete.
|
||||
*/
|
||||
+ (void)logInWithUsernameInBackground:(NSString *)username
|
||||
password:(NSString *)password
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Makes an asynchronous request to log in a user with specified credentials.
|
||||
Returns an instance of the successfully logged in PFUser. This will also cache
|
||||
the user locally so that calls to userFromCurrentUser will use the latest logged in user.
|
||||
@param username The username of the user.
|
||||
@param password The password of the user.
|
||||
@param block The block to execute. The block should have the following argument signature: (PFUser *user, NSError *error)
|
||||
*/
|
||||
+ (void)logInWithUsernameInBackground:(NSString *)username
|
||||
password:(NSString *)password
|
||||
block:(PFUserResultBlock)block;
|
||||
|
||||
/** @name Logging Out */
|
||||
|
||||
/*!
|
||||
Logs out the currently logged in user on disk.
|
||||
*/
|
||||
+ (void)logOut;
|
||||
|
||||
/** @name Requesting a Password Reset */
|
||||
|
||||
/*!
|
||||
Send a password reset request for a specified email. If a user account exists with that email,
|
||||
an email will be sent to that address with instructions on how to reset their password.
|
||||
@param email Email of the account to send a reset password request.
|
||||
@result Returns true if the reset email request is successful. False if no account was found for the email address.
|
||||
*/
|
||||
+ (BOOL)requestPasswordResetForEmail:(NSString *)email;
|
||||
|
||||
/*!
|
||||
Send a password reset request for a specified email and sets an error object. If a user
|
||||
account exists with that email, an email will be sent to that address with instructions
|
||||
on how to reset their password.
|
||||
@param email Email of the account to send a reset password request.
|
||||
@param error Error object to set on error.
|
||||
@result Returns true if the reset email request is successful. False if no account was found for the email address.
|
||||
*/
|
||||
+ (BOOL)requestPasswordResetForEmail:(NSString *)email
|
||||
error:(NSError **)error;
|
||||
|
||||
/*!
|
||||
Send a password reset request asynchronously for a specified email and sets an
|
||||
error object. If a user account exists with that email, an email will be sent to
|
||||
that address with instructions on how to reset their password.
|
||||
@param email Email of the account to send a reset password request.
|
||||
*/
|
||||
+ (void)requestPasswordResetForEmailInBackground:(NSString *)email;
|
||||
|
||||
/*!
|
||||
Send a password reset request asynchronously for a specified email and sets an error object.
|
||||
If a user account exists with that email, an email will be sent to that address with instructions
|
||||
on how to reset their password.
|
||||
@param email Email of the account to send a reset password request.
|
||||
@param target Target object for the selector.
|
||||
@param selector The selector that will be called when the asynchronous request is complete. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError **)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
|
||||
*/
|
||||
+ (void)requestPasswordResetForEmailInBackground:(NSString *)email
|
||||
target:(id)target
|
||||
selector:(SEL)selector;
|
||||
|
||||
/*!
|
||||
Send a password reset request asynchronously for a specified email.
|
||||
If a user account exists with that email, an email will be sent to that address with instructions
|
||||
on how to reset their password.
|
||||
@param email Email of the account to send a reset password request.
|
||||
@param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
|
||||
*/
|
||||
+ (void)requestPasswordResetForEmailInBackground:(NSString *)email
|
||||
block:(PFBooleanResultBlock)block;
|
||||
|
||||
/** @name Querying for Users */
|
||||
|
||||
/*!
|
||||
Creates a query for PFUser objects.
|
||||
*/
|
||||
+ (PFQuery *)query;
|
||||
|
||||
|
||||
@end
|
||||
49
Parse.framework/Versions/1.2.13/Headers/PF_EGORefreshTableHeaderView.h
Executable file
@@ -0,0 +1,49 @@
|
||||
//
|
||||
// EGORefreshTableHeaderView.h
|
||||
// Demo
|
||||
//
|
||||
// Created by Devin Doty on 10/14/09October14.
|
||||
// Copyright 2009 enormego. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@protocol PF_EGORefreshTableHeaderDelegate;
|
||||
@interface PF_EGORefreshTableHeaderView : UIView
|
||||
|
||||
@property (nonatomic,assign) id <PF_EGORefreshTableHeaderDelegate> delegate;
|
||||
@property (nonatomic, retain, readonly) UILabel *lastUpdatedLabel;
|
||||
@property (nonatomic, retain, readonly) UILabel *statusLabel;
|
||||
@property (nonatomic, retain, readonly) UIActivityIndicatorView *activityView;
|
||||
|
||||
- (void)refreshLastUpdatedDate;
|
||||
- (void)egoRefreshScrollViewDidScroll:(UIScrollView *)scrollView;
|
||||
- (void)egoRefreshScrollViewDidEndDragging:(UIScrollView *)scrollView;
|
||||
- (void)egoRefreshScrollViewDataSourceDidFinishedLoading:(UIScrollView *)scrollView;
|
||||
|
||||
@end
|
||||
|
||||
@protocol PF_EGORefreshTableHeaderDelegate
|
||||
- (void)egoRefreshTableHeaderDidTriggerRefresh:(PF_EGORefreshTableHeaderView*)view;
|
||||
- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(PF_EGORefreshTableHeaderView*)view;
|
||||
@optional
|
||||
- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(PF_EGORefreshTableHeaderView*)view;
|
||||
@end
|
||||
346
Parse.framework/Versions/1.2.13/Headers/PF_MBProgressHUD.h
Executable file
@@ -0,0 +1,346 @@
|
||||
//
|
||||
// MBProgressHUD.h
|
||||
// Version 0.4
|
||||
// Created by Matej Bukovinski on 2.4.09.
|
||||
//
|
||||
|
||||
// This code is distributed under the terms and conditions of the MIT license.
|
||||
|
||||
// Copyright (c) 2011 Matej Bukovinski
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@protocol PF_MBProgressHUDDelegate;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef enum {
|
||||
/** Progress is shown using an UIActivityIndicatorView. This is the default. */
|
||||
PF_MBProgressHUDModeIndeterminate,
|
||||
/** Progress is shown using a MBRoundProgressView. */
|
||||
PF_MBProgressHUDModeDeterminate,
|
||||
/** Shows a custom view */
|
||||
PF_MBProgressHUDModeCustomView
|
||||
} PF_MBProgressHUDMode;
|
||||
|
||||
typedef enum {
|
||||
/** Opacity animation */
|
||||
PF_MBProgressHUDAnimationFade,
|
||||
/** Opacity + scale animation */
|
||||
PF_MBProgressHUDAnimationZoom
|
||||
} PF_MBProgressHUDAnimation;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* Displays a simple HUD window containing a progress indicator and two optional labels for short messages.
|
||||
*
|
||||
* This is a simple drop-in class for displaying a progress HUD view similar to Apples private UIProgressHUD class.
|
||||
* The MBProgressHUD window spans over the entire space given to it by the initWithFrame constructor and catches all
|
||||
* user input on this region, thereby preventing the user operations on components below the view. The HUD itself is
|
||||
* drawn centered as a rounded semi-transparent view witch resizes depending on the user specified content.
|
||||
*
|
||||
* This view supports three modes of operation:
|
||||
* - MBProgressHUDModeIndeterminate - shows a UIActivityIndicatorView
|
||||
* - MBProgressHUDModeDeterminate - shows a custom round progress indicator (MBRoundProgressView)
|
||||
* - MBProgressHUDModeCustomView - shows an arbitrary, user specified view (@see customView)
|
||||
*
|
||||
* All three modes can have optional labels assigned:
|
||||
* - If the labelText property is set and non-empty then a label containing the provided content is placed below the
|
||||
* indicator view.
|
||||
* - If also the detailsLabelText property is set then another label is placed below the first label.
|
||||
*/
|
||||
@interface PF_MBProgressHUD : UIView {
|
||||
PF_MBProgressHUDMode mode;
|
||||
|
||||
#if __has_feature(objc_arc)
|
||||
id<PF_MBProgressHUDDelegate> __unsafe_unretained delegate;
|
||||
#else
|
||||
id<PF_MBProgressHUDDelegate> delegate;
|
||||
#endif
|
||||
|
||||
SEL methodForExecution;
|
||||
id targetForExecution;
|
||||
id objectForExecution;
|
||||
BOOL useAnimation;
|
||||
|
||||
UILabel *label;
|
||||
UILabel *detailsLabel;
|
||||
|
||||
float progress;
|
||||
|
||||
NSString *labelText;
|
||||
NSString *detailsLabelText;
|
||||
|
||||
BOOL isFinished;
|
||||
|
||||
CGAffineTransform rotationTransform;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new HUD, adds it to provided view and shows it. The counterpart to this method is hideHUDForView:animated:.
|
||||
*
|
||||
* @param view The view that the HUD will be added to
|
||||
* @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use
|
||||
* animations while disappearing.
|
||||
* @return A reference to the created HUD.
|
||||
*
|
||||
* @see hideHUDForView:animated:
|
||||
*/
|
||||
+ (PF_MBProgressHUD *)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;
|
||||
|
||||
/**
|
||||
* Finds a HUD sibview and hides it. The counterpart to this method is showHUDAddedTo:animated:.
|
||||
*
|
||||
* @param view The view that is going to be searched for a HUD subview.
|
||||
* @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use
|
||||
* animations while disappearing.
|
||||
* @return YES if a HUD was found and removed, NO otherwise.
|
||||
*
|
||||
* @see hideHUDForView:animated:
|
||||
*/
|
||||
+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;
|
||||
|
||||
/**
|
||||
* A convenience constructor that initializes the HUD with the window's bounds. Calls the designated constructor with
|
||||
* window.bounds as the parameter.
|
||||
*
|
||||
* @param window The window instance that will provide the bounds for the HUD. Should probably be the same instance as
|
||||
* the HUD's superview (i.e., the window that the HUD will be added to).
|
||||
*/
|
||||
- (id)initWithWindow:(UIWindow *)window;
|
||||
|
||||
/**
|
||||
* A convenience constructor that initializes the HUD with the view's bounds. Calls the designated constructor with
|
||||
* view.bounds as the parameter
|
||||
*
|
||||
* @param view The view instance that will provide the bounds for the HUD. Should probably be the same instance as
|
||||
* the HUD's superview (i.e., the view that the HUD will be added to).
|
||||
*/
|
||||
- (id)initWithView:(UIView *)view;
|
||||
|
||||
/**
|
||||
* The UIView (i.g., a UIIMageView) to be shown when the HUD is in MBProgressHUDModeCustomView.
|
||||
* For best results use a 37 by 37 pixel view (so the bounds match the build in indicator bounds).
|
||||
*/
|
||||
@property (retain) UIView *customView;
|
||||
|
||||
/**
|
||||
* MBProgressHUD operation mode. Switches between indeterminate (MBProgressHUDModeIndeterminate) and determinate
|
||||
* progress (MBProgressHUDModeDeterminate). The default is MBProgressHUDModeIndeterminate.
|
||||
*
|
||||
* @see MBProgressHUDMode
|
||||
*/
|
||||
@property (assign) PF_MBProgressHUDMode mode;
|
||||
|
||||
/**
|
||||
* The animation type that should be used when the HUD is shown and hidden.
|
||||
*
|
||||
* @see MBProgressHUDAnimation
|
||||
*/
|
||||
@property (assign) PF_MBProgressHUDAnimation animationType;
|
||||
|
||||
/**
|
||||
* The HUD delegate object. If set the delegate will receive hudWasHidden callbacks when the HUD was hidden. The
|
||||
* delegate should conform to the MBProgressHUDDelegate protocol and implement the hudWasHidden method. The delegate
|
||||
* object will not be retained.
|
||||
*/
|
||||
@property (assign) id<PF_MBProgressHUDDelegate> delegate;
|
||||
|
||||
/**
|
||||
* An optional short message to be displayed below the activity indicator. The HUD is automatically resized to fit
|
||||
* the entire text. If the text is too long it will get clipped by displaying "..." at the end. If left unchanged or
|
||||
* set to @"", then no message is displayed.
|
||||
*/
|
||||
@property (copy) NSString *labelText;
|
||||
|
||||
/**
|
||||
* An optional details message displayed below the labelText message. This message is displayed only if the labelText
|
||||
* property is also set and is different from an empty string (@"").
|
||||
*/
|
||||
@property (copy) NSString *detailsLabelText;
|
||||
|
||||
/**
|
||||
* The opacity of the HUD window. Defaults to 0.9 (90% opacity).
|
||||
*/
|
||||
@property (assign) float opacity;
|
||||
|
||||
/**
|
||||
* The x-axis offset of the HUD relative to the centre of the superview.
|
||||
*/
|
||||
@property (assign) float xOffset;
|
||||
|
||||
/**
|
||||
* The y-ayis offset of the HUD relative to the centre of the superview.
|
||||
*/
|
||||
@property (assign) float yOffset;
|
||||
|
||||
/**
|
||||
* The amounth of space between the HUD edge and the HUD elements (labels, indicators or custom views).
|
||||
*
|
||||
* Defaults to 20.0
|
||||
*/
|
||||
@property (assign) float margin;
|
||||
|
||||
/**
|
||||
* Cover the HUD background view with a radial gradient.
|
||||
*/
|
||||
@property (assign) BOOL dimBackground;
|
||||
|
||||
/*
|
||||
* Grace period is the time (in seconds) that the invoked method may be run without
|
||||
* showing the HUD. If the task finishes befor the grace time runs out, the HUD will
|
||||
* not be shown at all.
|
||||
* This may be used to prevent HUD display for very short tasks.
|
||||
* Defaults to 0 (no grace time).
|
||||
* Grace time functionality is only supported when the task status is known!
|
||||
* @see taskInProgress
|
||||
*/
|
||||
@property (assign) float graceTime;
|
||||
|
||||
|
||||
/**
|
||||
* The minimum time (in seconds) that the HUD is shown.
|
||||
* This avoids the problem of the HUD being shown and than instantly hidden.
|
||||
* Defaults to 0 (no minimum show time).
|
||||
*/
|
||||
@property (assign) float minShowTime;
|
||||
|
||||
/**
|
||||
* Indicates that the executed operation is in progress. Needed for correct graceTime operation.
|
||||
* If you don't set a graceTime (different than 0.0) this does nothing.
|
||||
* This property is automatically set when using showWhileExecuting:onTarget:withObject:animated:.
|
||||
* When threading is done outside of the HUD (i.e., when the show: and hide: methods are used directly),
|
||||
* you need to set this property when your task starts and completes in order to have normal graceTime
|
||||
* functunality.
|
||||
*/
|
||||
@property (assign) BOOL taskInProgress;
|
||||
|
||||
/**
|
||||
* Removes the HUD from it's parent view when hidden.
|
||||
* Defaults to NO.
|
||||
*/
|
||||
@property (assign) BOOL removeFromSuperViewOnHide;
|
||||
|
||||
/**
|
||||
* Font to be used for the main label. Set this property if the default is not adequate.
|
||||
*/
|
||||
@property (retain) UIFont* labelFont;
|
||||
|
||||
/**
|
||||
* Font to be used for the details label. Set this property if the default is not adequate.
|
||||
*/
|
||||
@property (retain) UIFont* detailsLabelFont;
|
||||
|
||||
/**
|
||||
* The progress of the progress indicator, from 0.0 to 1.0. Defaults to 0.0.
|
||||
*/
|
||||
@property (assign) float progress;
|
||||
|
||||
|
||||
/**
|
||||
* Display the HUD. You need to make sure that the main thread completes its run loop soon after this method call so
|
||||
* the user interface can be updated. Call this method when your task is already set-up to be executed in a new thread
|
||||
* (e.g., when using something like NSOperation or calling an asynchronous call like NSUrlRequest).
|
||||
*
|
||||
* If you need to perform a blocking thask on the main thread, you can try spining the run loop imeidiately after calling this
|
||||
* method by using:
|
||||
*
|
||||
* [[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantPast]];
|
||||
*
|
||||
* @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use
|
||||
* animations while disappearing.
|
||||
*/
|
||||
- (void)show:(BOOL)animated;
|
||||
|
||||
/**
|
||||
* Hide the HUD. This still calls the hudWasHidden delegate. This is the counterpart of the hide: method. Use it to
|
||||
* hide the HUD when your task completes.
|
||||
*
|
||||
* @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use
|
||||
* animations while disappearing.
|
||||
*/
|
||||
- (void)hide:(BOOL)animated;
|
||||
|
||||
/**
|
||||
* Hide the HUD after a delay. This still calls the hudWasHidden delegate. This is the counterpart of the hide: method. Use it to
|
||||
* hide the HUD when your task completes.
|
||||
*
|
||||
* @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use
|
||||
* animations while disappearing.
|
||||
* @param delay Delay in secons until the HUD is hidden.
|
||||
*/
|
||||
- (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay;
|
||||
|
||||
/**
|
||||
* Shows the HUD while a background task is executing in a new thread, then hides the HUD.
|
||||
*
|
||||
* This method also takes care of NSAutoreleasePools so your method does not have to be concerned with setting up a
|
||||
* pool.
|
||||
*
|
||||
* @param method The method to be executed while the HUD is shown. This method will be executed in a new thread.
|
||||
* @param target The object that the target method belongs to.
|
||||
* @param object An optional object to be passed to the method.
|
||||
* @param animated If set to YES the HUD will disappear using the current animationType. If set to NO the HUD will not use
|
||||
* animations while disappearing.
|
||||
*/
|
||||
- (void)showWhileExecuting:(SEL)method onTarget:(id)target withObject:(id)object animated:(BOOL)animated;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@protocol PF_MBProgressHUDDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
|
||||
/**
|
||||
* Called after the HUD was fully hidden from the screen.
|
||||
*/
|
||||
- (void)hudWasHidden:(PF_MBProgressHUD *)hud;
|
||||
|
||||
/**
|
||||
* @deprecated use hudWasHidden: instead
|
||||
* @see hudWasHidden:
|
||||
*/
|
||||
- (void)hudWasHidden __attribute__ ((deprecated));
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* A progress view for showing definite progress by filling up a circle (pie chart).
|
||||
*/
|
||||
@interface PF_MBRoundProgressView : UIView {
|
||||
@private
|
||||
float _progress;
|
||||
}
|
||||
|
||||
/**
|
||||
* Progress (0.0 to 1.0)
|
||||
*/
|
||||
@property (nonatomic, assign) float progress;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
43
Parse.framework/Versions/1.2.13/Headers/PF_Twitter.h
Executable file
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// PF_Twitter.h
|
||||
// Copyright (c) 2012 Parse, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
A simple interface for interacting with the Twitter REST API, automating sign-in and OAuth signing of requests against the API.
|
||||
*/
|
||||
@interface PF_Twitter : NSObject {
|
||||
@private
|
||||
NSString *consumerKey;
|
||||
NSString *consumerSecret;
|
||||
NSString *authToken;
|
||||
NSString *authTokenSecret;
|
||||
NSString *userId;
|
||||
NSString *screenName;
|
||||
}
|
||||
|
||||
@property (nonatomic, copy) NSString *consumerKey;
|
||||
@property (nonatomic, copy) NSString *consumerSecret;
|
||||
@property (nonatomic, copy) NSString *authToken;
|
||||
@property (nonatomic, copy) NSString *authTokenSecret;
|
||||
@property (nonatomic, copy) NSString *userId;
|
||||
@property (nonatomic, copy) NSString *screenName;
|
||||
|
||||
/*!
|
||||
Displays an auth dialog and populates the authToken, authTokenSecret, userId, and screenName properties if the Twitter user
|
||||
grants permission to the application.
|
||||
@param success Invoked upon successful authorization.
|
||||
@param failure Invoked upon an error occurring in the authorization process.
|
||||
@param cancel Invoked when the user cancels authorization.
|
||||
*/
|
||||
- (void)authorizeWithSuccess:(void (^)(void))success failure:(void (^)(NSError *error))failure cancel:(void (^)(void))cancel;
|
||||
|
||||
/*!
|
||||
Adds a 3-legged OAuth signature to an NSMutableURLRequest based upon the properties set for the Twitter object. Use this
|
||||
function to sign requests being made to the Twitter API.
|
||||
*/
|
||||
- (void)signRequest:(NSMutableURLRequest *)request;
|
||||
|
||||
@end
|
||||
79
Parse.framework/Versions/1.2.13/Headers/Parse.h
Executable file
@@ -0,0 +1,79 @@
|
||||
//
|
||||
// Parse.h
|
||||
// Parse
|
||||
//
|
||||
// Created by Ilya Sukhar on 9/29/11.
|
||||
// Copyright 2011 Parse, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PFACL.h"
|
||||
#import "PFAnalytics.h"
|
||||
#import "PFAnonymousUtils.h"
|
||||
#import "PFCloud.h"
|
||||
#import "PFConstants.h"
|
||||
#import "PFFile.h"
|
||||
#import "PFGeoPoint.h"
|
||||
#import "PFObject.h"
|
||||
#import "PFQuery.h"
|
||||
#import "PFRelation.h"
|
||||
#import "PFRole.h"
|
||||
#import "PFSubclassing.h"
|
||||
#import "PFUser.h"
|
||||
|
||||
#if PARSE_IOS_ONLY
|
||||
#import "PFImageView.h"
|
||||
#import "PFInstallation.h"
|
||||
#import "PFLogInViewController.h"
|
||||
#import "PFProduct.h"
|
||||
#import "PFProductTableViewController.h"
|
||||
#import "PFPurchase.h"
|
||||
#import "PFPush.h"
|
||||
#import "PFQueryTableViewController.h"
|
||||
#import "PFSignUpViewController.h"
|
||||
#import "PFTableViewCell.h"
|
||||
#import "PFTwitterUtils.h"
|
||||
|
||||
#if defined(__has_include)
|
||||
#if __has_include(<FacebookSDK/FacebookSDK.h>)
|
||||
#import <FacebookSDK/FacebookSDK.h>
|
||||
#import "PFFacebookUtils.h"
|
||||
#else
|
||||
#define PFFacebookUtils Please_add_the_Facebook_SDK_to_your_project
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@interface Parse : NSObject
|
||||
|
||||
/** @name Connecting to Parse */
|
||||
|
||||
/*!
|
||||
Sets the applicationId and clientKey of your application.
|
||||
@param applicationId The application id for your Parse application.
|
||||
@param clientKey The client key for your Parse application.
|
||||
*/
|
||||
+ (void)setApplicationId:(NSString *)applicationId clientKey:(NSString *)clientKey;
|
||||
+ (NSString *)getApplicationId;
|
||||
+ (NSString *)getClientKey;
|
||||
|
||||
#if PARSE_IOS_ONLY
|
||||
/** @name Configuring UI Settings */
|
||||
|
||||
/*!
|
||||
Set whether to show offline messages when using a Parse view or view controller related classes.
|
||||
@param enabled Whether a UIAlert should be shown when the device is offline and network access is required
|
||||
from a view or view controller.
|
||||
*/
|
||||
+ (void)offlineMessagesEnabled:(BOOL)enabled;
|
||||
|
||||
/*!
|
||||
Set whether to show an error message when using a Parse view or view controller related classes
|
||||
and a Parse error was generated via a query.
|
||||
@param enabled Whether a UIAlert should be shown when a Parse error occurs.
|
||||
*/
|
||||
+ (void)errorMessagesEnabled:(BOOL)enabled;
|
||||
#endif
|
||||
|
||||
@end
|
||||
BIN
Parse.framework/Versions/1.2.13/Parse
Executable file
20
Parse.framework/Versions/1.2.13/Resources/Info.plist
Executable file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Parse</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.parse.Parse</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
Parse.framework/Versions/1.2.13/Resources/Localizable.strings
Executable file
1
Parse.framework/Versions/Current
Symbolic link
@@ -0,0 +1 @@
|
||||
1.2.13
|
||||
79
Parse.framework/third_party_licenses.txt
Executable file
@@ -0,0 +1,79 @@
|
||||
THE FOLLOWING SETS FORTH ATTRIBUTION NOTICES FOR THIRD PARTY SOFTWARE THAT MAY BE CONTAINED IN PORTIONS OF THE PARSE PRODUCT.
|
||||
|
||||
-----
|
||||
|
||||
The following software may be included in this product: AFNetworking. This software contains the following license and notice below:
|
||||
|
||||
Copyright (c) 2011 Gowalla (http://gowalla.com/)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
-----
|
||||
|
||||
The following software may be included in this product: EGOTableViewPullRefresh. This software contains the following license and notice below:
|
||||
|
||||
//
|
||||
// EGORefreshTableHeaderView.h
|
||||
// Demo
|
||||
//
|
||||
// Created by Devin Doty on 10/14/09October14.
|
||||
// Copyright 2009 enormego. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
|
||||
-----
|
||||
|
||||
The following software may be included in this product: MBProgressHUD. This software contains the following license and notice below:
|
||||
|
||||
Copyright (c) 2013 Matej Bukovinski
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
BIN
default.pxm
Executable file
575
occultation.xcodeproj/project.pbxproj
Executable file
@@ -0,0 +1,575 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
F05DD7AE17E3568800485289 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7A417E3568800485289 /* Icon-72.png */; };
|
||||
F05DD7AF17E3568800485289 /* Icon-72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7A517E3568800485289 /* Icon-72@2x.png */; };
|
||||
F05DD7B017E3568800485289 /* Icon-Small-50.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7A617E3568800485289 /* Icon-Small-50.png */; };
|
||||
F05DD7B117E3568800485289 /* Icon-Small-50@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7A717E3568800485289 /* Icon-Small-50@2x.png */; };
|
||||
F05DD7B217E3568800485289 /* Icon-Small.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7A817E3568800485289 /* Icon-Small.png */; };
|
||||
F05DD7B317E3568800485289 /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7A917E3568800485289 /* Icon-Small@2x.png */; };
|
||||
F05DD7B417E3568800485289 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7AA17E3568800485289 /* Icon.png */; };
|
||||
F05DD7B517E3568800485289 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7AB17E3568800485289 /* Icon@2x.png */; };
|
||||
F05DD7B617E3568800485289 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7AC17E3568800485289 /* iTunesArtwork */; };
|
||||
F05DD7B717E3568800485289 /* iTunesArtwork@2x in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7AD17E3568800485289 /* iTunesArtwork@2x */; };
|
||||
F05DD7BA17E3571300485289 /* 397-self-timer.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7B817E3571300485289 /* 397-self-timer.png */; };
|
||||
F05DD7BB17E3571300485289 /* 397-self-timer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7B917E3571300485289 /* 397-self-timer@2x.png */; };
|
||||
F05DD7BE17E3575400485289 /* 78-stopwatch.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7BC17E3575400485289 /* 78-stopwatch.png */; };
|
||||
F05DD7BF17E3575400485289 /* 78-stopwatch@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7BD17E3575400485289 /* 78-stopwatch@2x.png */; };
|
||||
F05DD7C217E3576000485289 /* 111-user.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7C017E3576000485289 /* 111-user.png */; };
|
||||
F05DD7C317E3576000485289 /* 111-user@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F05DD7C117E3576000485289 /* 111-user@2x.png */; };
|
||||
F06BDBB018BDF5120062E2D7 /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F06BDBAE18BDF5120062E2D7 /* MapViewController.m */; };
|
||||
F06BDBB118BDF5120062E2D7 /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F06BDBAF18BDF5120062E2D7 /* MapViewController.xib */; };
|
||||
F06BDBB518BDF51F0062E2D7 /* MyDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F06BDBB318BDF51F0062E2D7 /* MyDataViewController.m */; };
|
||||
F06BDBB618BDF51F0062E2D7 /* MyDataViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F06BDBB418BDF51F0062E2D7 /* MyDataViewController.xib */; };
|
||||
F06BDBB918BDF64D0062E2D7 /* PlaceMark.m in Sources */ = {isa = PBXBuildFile; fileRef = F06BDBB818BDF64D0062E2D7 /* PlaceMark.m */; };
|
||||
F06BDBBC18BDF6640062E2D7 /* ZSPinAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = F06BDBBB18BDF6640062E2D7 /* ZSPinAnnotation.m */; };
|
||||
F06BDBBE18BDF6A00062E2D7 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F06BDBBD18BDF6A00062E2D7 /* MapKit.framework */; };
|
||||
F06BDBC118BDF7150062E2D7 /* 74-location.png in Resources */ = {isa = PBXBuildFile; fileRef = F06BDBBF18BDF7150062E2D7 /* 74-location.png */; };
|
||||
F06BDBC218BDF7150062E2D7 /* 74-location@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F06BDBC018BDF7150062E2D7 /* 74-location@2x.png */; };
|
||||
F06BDBC518BDF7520062E2D7 /* 07-map-marker.png in Resources */ = {isa = PBXBuildFile; fileRef = F06BDBC318BDF7520062E2D7 /* 07-map-marker.png */; };
|
||||
F06BDBC618BDF7520062E2D7 /* 07-map-marker@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F06BDBC418BDF7520062E2D7 /* 07-map-marker@2x.png */; };
|
||||
F06BDBC918BDF92F0062E2D7 /* 179-notepad.png in Resources */ = {isa = PBXBuildFile; fileRef = F06BDBC718BDF92F0062E2D7 /* 179-notepad.png */; };
|
||||
F06BDBCA18BDF92F0062E2D7 /* 179-notepad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F06BDBC818BDF92F0062E2D7 /* 179-notepad@2x.png */; };
|
||||
F073DE2E17E1D4780049D977 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE2D17E1D4780049D977 /* UIKit.framework */; };
|
||||
F073DE3017E1D4780049D977 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE2F17E1D4780049D977 /* Foundation.framework */; };
|
||||
F073DE3217E1D4780049D977 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE3117E1D4780049D977 /* CoreGraphics.framework */; };
|
||||
F073DE3817E1D4780049D977 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F073DE3617E1D4780049D977 /* InfoPlist.strings */; };
|
||||
F073DE3A17E1D4780049D977 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F073DE3917E1D4780049D977 /* main.m */; };
|
||||
F073DE3E17E1D4780049D977 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F073DE3D17E1D4780049D977 /* AppDelegate.m */; };
|
||||
F073DE4017E1D4780049D977 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = F073DE3F17E1D4780049D977 /* Default.png */; };
|
||||
F073DE4717E1D4780049D977 /* FirstViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F073DE4617E1D4780049D977 /* FirstViewController.m */; };
|
||||
F073DE4917E1D4780049D977 /* first.png in Resources */ = {isa = PBXBuildFile; fileRef = F073DE4817E1D4780049D977 /* first.png */; };
|
||||
F073DE4B17E1D4780049D977 /* first@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F073DE4A17E1D4780049D977 /* first@2x.png */; };
|
||||
F073DE4E17E1D4780049D977 /* SecondViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F073DE4D17E1D4780049D977 /* SecondViewController.m */; };
|
||||
F073DE5017E1D4780049D977 /* second.png in Resources */ = {isa = PBXBuildFile; fileRef = F073DE4F17E1D4780049D977 /* second.png */; };
|
||||
F073DE5217E1D4780049D977 /* second@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F073DE5117E1D4780049D977 /* second@2x.png */; };
|
||||
F073DE5517E1D4780049D977 /* FirstViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = F073DE5317E1D4780049D977 /* FirstViewController_iPhone.xib */; };
|
||||
F073DE5B17E1D4780049D977 /* SecondViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = F073DE5917E1D4780049D977 /* SecondViewController_iPhone.xib */; };
|
||||
F073DE6517E1D5940049D977 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE6417E1D5940049D977 /* Parse.framework */; };
|
||||
F073DE6717E1D6000049D977 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE6617E1D6000049D977 /* AudioToolbox.framework */; };
|
||||
F073DE6917E1D6050049D977 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE6817E1D6050049D977 /* CFNetwork.framework */; };
|
||||
F073DE6B17E1D6100049D977 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE6A17E1D6100049D977 /* CoreLocation.framework */; };
|
||||
F073DE6D17E1D6160049D977 /* libz.1.1.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE6C17E1D6150049D977 /* libz.1.1.3.dylib */; };
|
||||
F073DE6F17E1D61B0049D977 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE6E17E1D61B0049D977 /* MobileCoreServices.framework */; };
|
||||
F073DE7117E1D6200049D977 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE7017E1D6200049D977 /* QuartzCore.framework */; };
|
||||
F073DE7317E1D6260049D977 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE7217E1D6260049D977 /* Security.framework */; };
|
||||
F073DE7717E1D6380049D977 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F073DE7617E1D6380049D977 /* SystemConfiguration.framework */; };
|
||||
F073DE7D17E1D8D10049D977 /* NSString+MD5Addition.m in Sources */ = {isa = PBXBuildFile; fileRef = F073DE7C17E1D8D10049D977 /* NSString+MD5Addition.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
F073DE8017E1D8DF0049D977 /* GradientButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F073DE7E17E1D8DF0049D977 /* GradientButton.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
F099B59517F471EA00494A32 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F099B59417F471EA00494A32 /* libz.dylib */; };
|
||||
F0D1F8B4182C074000108528 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F0D1F8B3182C074000108528 /* Images.xcassets */; };
|
||||
F0EF382C18A8DB9100FF9519 /* 441-help-symbol1.png in Resources */ = {isa = PBXBuildFile; fileRef = F0EF382A18A8DB9100FF9519 /* 441-help-symbol1.png */; };
|
||||
F0EF382D18A8DB9100FF9519 /* 441-help-symbol1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F0EF382B18A8DB9100FF9519 /* 441-help-symbol1@2x.png */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
F05DD7A417E3568800485289 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-72.png"; sourceTree = "<group>"; };
|
||||
F05DD7A517E3568800485289 /* Icon-72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-72@2x.png"; sourceTree = "<group>"; };
|
||||
F05DD7A617E3568800485289 /* Icon-Small-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small-50.png"; sourceTree = "<group>"; };
|
||||
F05DD7A717E3568800485289 /* Icon-Small-50@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small-50@2x.png"; sourceTree = "<group>"; };
|
||||
F05DD7A817E3568800485289 /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small.png"; sourceTree = "<group>"; };
|
||||
F05DD7A917E3568800485289 /* Icon-Small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small@2x.png"; sourceTree = "<group>"; };
|
||||
F05DD7AA17E3568800485289 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = "<group>"; };
|
||||
F05DD7AB17E3568800485289 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = "<group>"; };
|
||||
F05DD7AC17E3568800485289 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = "<group>"; };
|
||||
F05DD7AD17E3568800485289 /* iTunesArtwork@2x */ = {isa = PBXFileReference; lastKnownFileType = file; path = "iTunesArtwork@2x"; sourceTree = "<group>"; };
|
||||
F05DD7B817E3571300485289 /* 397-self-timer.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "397-self-timer.png"; sourceTree = "<group>"; };
|
||||
F05DD7B917E3571300485289 /* 397-self-timer@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "397-self-timer@2x.png"; sourceTree = "<group>"; };
|
||||
F05DD7BC17E3575400485289 /* 78-stopwatch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "78-stopwatch.png"; sourceTree = "<group>"; };
|
||||
F05DD7BD17E3575400485289 /* 78-stopwatch@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "78-stopwatch@2x.png"; sourceTree = "<group>"; };
|
||||
F05DD7C017E3576000485289 /* 111-user.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "111-user.png"; sourceTree = "<group>"; };
|
||||
F05DD7C117E3576000485289 /* 111-user@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "111-user@2x.png"; sourceTree = "<group>"; };
|
||||
F06BDBAD18BDF5120062E2D7 /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
|
||||
F06BDBAE18BDF5120062E2D7 /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; };
|
||||
F06BDBAF18BDF5120062E2D7 /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; };
|
||||
F06BDBB218BDF51F0062E2D7 /* MyDataViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyDataViewController.h; sourceTree = "<group>"; };
|
||||
F06BDBB318BDF51F0062E2D7 /* MyDataViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyDataViewController.m; sourceTree = "<group>"; };
|
||||
F06BDBB418BDF51F0062E2D7 /* MyDataViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MyDataViewController.xib; sourceTree = "<group>"; };
|
||||
F06BDBB718BDF64D0062E2D7 /* PlaceMark.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaceMark.h; sourceTree = "<group>"; };
|
||||
F06BDBB818BDF64D0062E2D7 /* PlaceMark.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlaceMark.m; sourceTree = "<group>"; };
|
||||
F06BDBBA18BDF6640062E2D7 /* ZSPinAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZSPinAnnotation.h; sourceTree = "<group>"; };
|
||||
F06BDBBB18BDF6640062E2D7 /* ZSPinAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZSPinAnnotation.m; sourceTree = "<group>"; };
|
||||
F06BDBBD18BDF6A00062E2D7 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
|
||||
F06BDBBF18BDF7150062E2D7 /* 74-location.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "74-location.png"; sourceTree = "<group>"; };
|
||||
F06BDBC018BDF7150062E2D7 /* 74-location@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "74-location@2x.png"; sourceTree = "<group>"; };
|
||||
F06BDBC318BDF7520062E2D7 /* 07-map-marker.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "07-map-marker.png"; sourceTree = "<group>"; };
|
||||
F06BDBC418BDF7520062E2D7 /* 07-map-marker@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "07-map-marker@2x.png"; sourceTree = "<group>"; };
|
||||
F06BDBC718BDF92F0062E2D7 /* 179-notepad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "179-notepad.png"; sourceTree = "<group>"; };
|
||||
F06BDBC818BDF92F0062E2D7 /* 179-notepad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "179-notepad@2x.png"; sourceTree = "<group>"; };
|
||||
F073DE2A17E1D4780049D977 /* occultation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = occultation.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F073DE2D17E1D4780049D977 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
F073DE2F17E1D4780049D977 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
F073DE3117E1D4780049D977 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||
F073DE3517E1D4780049D977 /* occultation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "occultation-Info.plist"; sourceTree = "<group>"; };
|
||||
F073DE3717E1D4780049D977 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
F073DE3917E1D4780049D977 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
F073DE3B17E1D4780049D977 /* occultation-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "occultation-Prefix.pch"; sourceTree = "<group>"; };
|
||||
F073DE3C17E1D4780049D977 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
F073DE3D17E1D4780049D977 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
F073DE3F17E1D4780049D977 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
|
||||
F073DE4517E1D4780049D977 /* FirstViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirstViewController.h; sourceTree = "<group>"; };
|
||||
F073DE4617E1D4780049D977 /* FirstViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FirstViewController.m; sourceTree = "<group>"; };
|
||||
F073DE4817E1D4780049D977 /* first.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = first.png; sourceTree = "<group>"; };
|
||||
F073DE4A17E1D4780049D977 /* first@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "first@2x.png"; sourceTree = "<group>"; };
|
||||
F073DE4C17E1D4780049D977 /* SecondViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecondViewController.h; sourceTree = "<group>"; };
|
||||
F073DE4D17E1D4780049D977 /* SecondViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SecondViewController.m; sourceTree = "<group>"; };
|
||||
F073DE4F17E1D4780049D977 /* second.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = second.png; sourceTree = "<group>"; };
|
||||
F073DE5117E1D4780049D977 /* second@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "second@2x.png"; sourceTree = "<group>"; };
|
||||
F073DE5417E1D4780049D977 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/FirstViewController_iPhone.xib; sourceTree = "<group>"; };
|
||||
F073DE5A17E1D4780049D977 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/SecondViewController_iPhone.xib; sourceTree = "<group>"; };
|
||||
F073DE6417E1D5940049D977 /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Parse.framework; sourceTree = "<group>"; };
|
||||
F073DE6617E1D6000049D977 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||
F073DE6817E1D6050049D977 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
|
||||
F073DE6A17E1D6100049D977 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
|
||||
F073DE6C17E1D6150049D977 /* libz.1.1.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.1.1.3.dylib; path = usr/lib/libz.1.1.3.dylib; sourceTree = SDKROOT; };
|
||||
F073DE6E17E1D61B0049D977 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
|
||||
F073DE7017E1D6200049D977 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||
F073DE7217E1D6260049D977 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||
F073DE7617E1D6380049D977 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
|
||||
F073DE7B17E1D8D10049D977 /* NSString+MD5Addition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MD5Addition.h"; sourceTree = "<group>"; };
|
||||
F073DE7C17E1D8D10049D977 /* NSString+MD5Addition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MD5Addition.m"; sourceTree = "<group>"; };
|
||||
F073DE7E17E1D8DF0049D977 /* GradientButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GradientButton.m; sourceTree = "<group>"; };
|
||||
F073DE7F17E1D8DF0049D977 /* GradientButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GradientButton.h; sourceTree = "<group>"; };
|
||||
F099B58F17F471B200494A32 /* TestFlight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestFlight.h; sourceTree = "<group>"; };
|
||||
F099B59017F471BB00494A32 /* libTestFlight.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libTestFlight.a; sourceTree = "<group>"; };
|
||||
F099B59217F471CB00494A32 /* TestFlight+AsyncLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TestFlight+AsyncLogging.h"; sourceTree = "<group>"; };
|
||||
F099B59317F471CB00494A32 /* TestFlight+ManualSessions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TestFlight+ManualSessions.h"; sourceTree = "<group>"; };
|
||||
F099B59417F471EA00494A32 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
||||
F0D1F8B3182C074000108528 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
F0EF382A18A8DB9100FF9519 /* 441-help-symbol1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "441-help-symbol1.png"; sourceTree = "<group>"; };
|
||||
F0EF382B18A8DB9100FF9519 /* 441-help-symbol1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "441-help-symbol1@2x.png"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
F073DE2717E1D4780049D977 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F06BDBBE18BDF6A00062E2D7 /* MapKit.framework in Frameworks */,
|
||||
F099B59517F471EA00494A32 /* libz.dylib in Frameworks */,
|
||||
F073DE6717E1D6000049D977 /* AudioToolbox.framework in Frameworks */,
|
||||
F073DE7717E1D6380049D977 /* SystemConfiguration.framework in Frameworks */,
|
||||
F073DE7317E1D6260049D977 /* Security.framework in Frameworks */,
|
||||
F073DE7117E1D6200049D977 /* QuartzCore.framework in Frameworks */,
|
||||
F073DE6F17E1D61B0049D977 /* MobileCoreServices.framework in Frameworks */,
|
||||
F073DE6D17E1D6160049D977 /* libz.1.1.3.dylib in Frameworks */,
|
||||
F073DE6B17E1D6100049D977 /* CoreLocation.framework in Frameworks */,
|
||||
F073DE3217E1D4780049D977 /* CoreGraphics.framework in Frameworks */,
|
||||
F073DE6917E1D6050049D977 /* CFNetwork.framework in Frameworks */,
|
||||
F073DE2E17E1D4780049D977 /* UIKit.framework in Frameworks */,
|
||||
F073DE3017E1D4780049D977 /* Foundation.framework in Frameworks */,
|
||||
F073DE6517E1D5940049D977 /* Parse.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
F073DE2117E1D4780049D977 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F073DE7617E1D6380049D977 /* SystemConfiguration.framework */,
|
||||
F073DE7217E1D6260049D977 /* Security.framework */,
|
||||
F073DE7017E1D6200049D977 /* QuartzCore.framework */,
|
||||
F073DE6E17E1D61B0049D977 /* MobileCoreServices.framework */,
|
||||
F073DE6C17E1D6150049D977 /* libz.1.1.3.dylib */,
|
||||
F073DE6A17E1D6100049D977 /* CoreLocation.framework */,
|
||||
F073DE6817E1D6050049D977 /* CFNetwork.framework */,
|
||||
F073DE6617E1D6000049D977 /* AudioToolbox.framework */,
|
||||
F073DE3317E1D4780049D977 /* occultation */,
|
||||
F073DE2C17E1D4780049D977 /* Frameworks */,
|
||||
F073DE2B17E1D4780049D977 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F073DE2B17E1D4780049D977 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F073DE2A17E1D4780049D977 /* occultation.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F073DE2C17E1D4780049D977 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F06BDBBD18BDF6A00062E2D7 /* MapKit.framework */,
|
||||
F099B59417F471EA00494A32 /* libz.dylib */,
|
||||
F073DE6417E1D5940049D977 /* Parse.framework */,
|
||||
F073DE2D17E1D4780049D977 /* UIKit.framework */,
|
||||
F073DE2F17E1D4780049D977 /* Foundation.framework */,
|
||||
F073DE3117E1D4780049D977 /* CoreGraphics.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F073DE3317E1D4780049D977 /* occultation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F05DD7A417E3568800485289 /* Icon-72.png */,
|
||||
F05DD7A517E3568800485289 /* Icon-72@2x.png */,
|
||||
F05DD7A617E3568800485289 /* Icon-Small-50.png */,
|
||||
F05DD7A717E3568800485289 /* Icon-Small-50@2x.png */,
|
||||
F05DD7A817E3568800485289 /* Icon-Small.png */,
|
||||
F05DD7A917E3568800485289 /* Icon-Small@2x.png */,
|
||||
F05DD7AA17E3568800485289 /* Icon.png */,
|
||||
F05DD7AB17E3568800485289 /* Icon@2x.png */,
|
||||
F099B58F17F471B200494A32 /* TestFlight.h */,
|
||||
F05DD7AC17E3568800485289 /* iTunesArtwork */,
|
||||
F05DD7AD17E3568800485289 /* iTunesArtwork@2x */,
|
||||
F073DE3C17E1D4780049D977 /* AppDelegate.h */,
|
||||
F073DE3D17E1D4780049D977 /* AppDelegate.m */,
|
||||
F073DE7E17E1D8DF0049D977 /* GradientButton.m */,
|
||||
F073DE7F17E1D8DF0049D977 /* GradientButton.h */,
|
||||
F073DE7B17E1D8D10049D977 /* NSString+MD5Addition.h */,
|
||||
F06BDBBF18BDF7150062E2D7 /* 74-location.png */,
|
||||
F06BDBC718BDF92F0062E2D7 /* 179-notepad.png */,
|
||||
F06BDBC818BDF92F0062E2D7 /* 179-notepad@2x.png */,
|
||||
F06BDBC018BDF7150062E2D7 /* 74-location@2x.png */,
|
||||
F073DE7C17E1D8D10049D977 /* NSString+MD5Addition.m */,
|
||||
F06BDBC318BDF7520062E2D7 /* 07-map-marker.png */,
|
||||
F06BDBC418BDF7520062E2D7 /* 07-map-marker@2x.png */,
|
||||
F06BDBAD18BDF5120062E2D7 /* MapViewController.h */,
|
||||
F06BDBAE18BDF5120062E2D7 /* MapViewController.m */,
|
||||
F06BDBAF18BDF5120062E2D7 /* MapViewController.xib */,
|
||||
F06BDBB218BDF51F0062E2D7 /* MyDataViewController.h */,
|
||||
F06BDBB318BDF51F0062E2D7 /* MyDataViewController.m */,
|
||||
F06BDBBA18BDF6640062E2D7 /* ZSPinAnnotation.h */,
|
||||
F06BDBBB18BDF6640062E2D7 /* ZSPinAnnotation.m */,
|
||||
F06BDBB418BDF51F0062E2D7 /* MyDataViewController.xib */,
|
||||
F05DD7BC17E3575400485289 /* 78-stopwatch.png */,
|
||||
F06BDBB718BDF64D0062E2D7 /* PlaceMark.h */,
|
||||
F06BDBB818BDF64D0062E2D7 /* PlaceMark.m */,
|
||||
F05DD7BD17E3575400485289 /* 78-stopwatch@2x.png */,
|
||||
F05DD7C017E3576000485289 /* 111-user.png */,
|
||||
F0EF382A18A8DB9100FF9519 /* 441-help-symbol1.png */,
|
||||
F0EF382B18A8DB9100FF9519 /* 441-help-symbol1@2x.png */,
|
||||
F05DD7C117E3576000485289 /* 111-user@2x.png */,
|
||||
F05DD7B817E3571300485289 /* 397-self-timer.png */,
|
||||
F099B59217F471CB00494A32 /* TestFlight+AsyncLogging.h */,
|
||||
F099B59317F471CB00494A32 /* TestFlight+ManualSessions.h */,
|
||||
F05DD7B917E3571300485289 /* 397-self-timer@2x.png */,
|
||||
F099B59017F471BB00494A32 /* libTestFlight.a */,
|
||||
F073DE4517E1D4780049D977 /* FirstViewController.h */,
|
||||
F073DE4617E1D4780049D977 /* FirstViewController.m */,
|
||||
F073DE5317E1D4780049D977 /* FirstViewController_iPhone.xib */,
|
||||
F073DE4817E1D4780049D977 /* first.png */,
|
||||
F073DE4A17E1D4780049D977 /* first@2x.png */,
|
||||
F073DE4C17E1D4780049D977 /* SecondViewController.h */,
|
||||
F073DE4D17E1D4780049D977 /* SecondViewController.m */,
|
||||
F073DE5917E1D4780049D977 /* SecondViewController_iPhone.xib */,
|
||||
F073DE4F17E1D4780049D977 /* second.png */,
|
||||
F073DE5117E1D4780049D977 /* second@2x.png */,
|
||||
F0D1F8B3182C074000108528 /* Images.xcassets */,
|
||||
F073DE3417E1D4780049D977 /* Supporting Files */,
|
||||
);
|
||||
path = occultation;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F073DE3417E1D4780049D977 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F073DE3517E1D4780049D977 /* occultation-Info.plist */,
|
||||
F073DE3617E1D4780049D977 /* InfoPlist.strings */,
|
||||
F073DE3917E1D4780049D977 /* main.m */,
|
||||
F073DE3B17E1D4780049D977 /* occultation-Prefix.pch */,
|
||||
F073DE3F17E1D4780049D977 /* Default.png */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
F073DE2917E1D4780049D977 /* occultation */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = F073DE6117E1D4780049D977 /* Build configuration list for PBXNativeTarget "occultation" */;
|
||||
buildPhases = (
|
||||
F073DE2617E1D4780049D977 /* Sources */,
|
||||
F073DE2717E1D4780049D977 /* Frameworks */,
|
||||
F073DE2817E1D4780049D977 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = occultation;
|
||||
productName = occultation;
|
||||
productReference = F073DE2A17E1D4780049D977 /* occultation.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
F073DE2217E1D4780049D977 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
ORGANIZATIONNAME = "Norbert Schmidt";
|
||||
TargetAttributes = {
|
||||
F073DE2917E1D4780049D977 = {
|
||||
DevelopmentTeam = QPD2B5L538;
|
||||
SystemCapabilities = {
|
||||
com.apple.InAppPurchase = {
|
||||
enabled = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = F073DE2517E1D4780049D977 /* Build configuration list for PBXProject "occultation" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = F073DE2117E1D4780049D977;
|
||||
productRefGroup = F073DE2B17E1D4780049D977 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
F073DE2917E1D4780049D977 /* occultation */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
F073DE2817E1D4780049D977 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F073DE3817E1D4780049D977 /* InfoPlist.strings in Resources */,
|
||||
F073DE4017E1D4780049D977 /* Default.png in Resources */,
|
||||
F073DE4917E1D4780049D977 /* first.png in Resources */,
|
||||
F073DE4B17E1D4780049D977 /* first@2x.png in Resources */,
|
||||
F06BDBC218BDF7150062E2D7 /* 74-location@2x.png in Resources */,
|
||||
F06BDBC518BDF7520062E2D7 /* 07-map-marker.png in Resources */,
|
||||
F073DE5017E1D4780049D977 /* second.png in Resources */,
|
||||
F06BDBC918BDF92F0062E2D7 /* 179-notepad.png in Resources */,
|
||||
F073DE5217E1D4780049D977 /* second@2x.png in Resources */,
|
||||
F073DE5517E1D4780049D977 /* FirstViewController_iPhone.xib in Resources */,
|
||||
F0D1F8B4182C074000108528 /* Images.xcassets in Resources */,
|
||||
F073DE5B17E1D4780049D977 /* SecondViewController_iPhone.xib in Resources */,
|
||||
F05DD7AE17E3568800485289 /* Icon-72.png in Resources */,
|
||||
F05DD7AF17E3568800485289 /* Icon-72@2x.png in Resources */,
|
||||
F06BDBB118BDF5120062E2D7 /* MapViewController.xib in Resources */,
|
||||
F05DD7B017E3568800485289 /* Icon-Small-50.png in Resources */,
|
||||
F05DD7B117E3568800485289 /* Icon-Small-50@2x.png in Resources */,
|
||||
F05DD7B217E3568800485289 /* Icon-Small.png in Resources */,
|
||||
F05DD7B317E3568800485289 /* Icon-Small@2x.png in Resources */,
|
||||
F05DD7B417E3568800485289 /* Icon.png in Resources */,
|
||||
F05DD7B517E3568800485289 /* Icon@2x.png in Resources */,
|
||||
F06BDBCA18BDF92F0062E2D7 /* 179-notepad@2x.png in Resources */,
|
||||
F06BDBB618BDF51F0062E2D7 /* MyDataViewController.xib in Resources */,
|
||||
F05DD7B617E3568800485289 /* iTunesArtwork in Resources */,
|
||||
F05DD7B717E3568800485289 /* iTunesArtwork@2x in Resources */,
|
||||
F05DD7BA17E3571300485289 /* 397-self-timer.png in Resources */,
|
||||
F0EF382C18A8DB9100FF9519 /* 441-help-symbol1.png in Resources */,
|
||||
F05DD7BB17E3571300485289 /* 397-self-timer@2x.png in Resources */,
|
||||
F05DD7BE17E3575400485289 /* 78-stopwatch.png in Resources */,
|
||||
F06BDBC118BDF7150062E2D7 /* 74-location.png in Resources */,
|
||||
F05DD7BF17E3575400485289 /* 78-stopwatch@2x.png in Resources */,
|
||||
F0EF382D18A8DB9100FF9519 /* 441-help-symbol1@2x.png in Resources */,
|
||||
F05DD7C217E3576000485289 /* 111-user.png in Resources */,
|
||||
F05DD7C317E3576000485289 /* 111-user@2x.png in Resources */,
|
||||
F06BDBC618BDF7520062E2D7 /* 07-map-marker@2x.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
F073DE2617E1D4780049D977 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F06BDBB518BDF51F0062E2D7 /* MyDataViewController.m in Sources */,
|
||||
F073DE3A17E1D4780049D977 /* main.m in Sources */,
|
||||
F073DE3E17E1D4780049D977 /* AppDelegate.m in Sources */,
|
||||
F06BDBB918BDF64D0062E2D7 /* PlaceMark.m in Sources */,
|
||||
F073DE4717E1D4780049D977 /* FirstViewController.m in Sources */,
|
||||
F073DE4E17E1D4780049D977 /* SecondViewController.m in Sources */,
|
||||
F073DE7D17E1D8D10049D977 /* NSString+MD5Addition.m in Sources */,
|
||||
F073DE8017E1D8DF0049D977 /* GradientButton.m in Sources */,
|
||||
F06BDBB018BDF5120062E2D7 /* MapViewController.m in Sources */,
|
||||
F06BDBBC18BDF6640062E2D7 /* ZSPinAnnotation.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
F073DE3617E1D4780049D977 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
F073DE3717E1D4780049D977 /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F073DE5317E1D4780049D977 /* FirstViewController_iPhone.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
F073DE5417E1D4780049D977 /* en */,
|
||||
);
|
||||
name = FirstViewController_iPhone.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F073DE5917E1D4780049D977 /* SecondViewController_iPhone.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
F073DE5A17E1D4780049D977 /* en */,
|
||||
);
|
||||
name = SecondViewController_iPhone.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
F073DE5F17E1D4780049D977 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
F073DE6017E1D4780049D977 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
F073DE6217E1D4780049D977 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: DDQ (QPD2B5L538)";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: DDQ (QPD2B5L538)";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)\"",
|
||||
);
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "occultation/occultation-Prefix.pch";
|
||||
INFOPLIST_FILE = "occultation/occultation-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"/Users/nop/Dropbox/iOS\\ Projects/occultation/occultation",
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "E22EF5C0-649C-4639-80A2-089905249BE0";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "E22EF5C0-649C-4639-80A2-089905249BE0";
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
F073DE6317E1D4780049D977 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: DDQ (QPD2B5L538)";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: DDQ (QPD2B5L538)";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)\"",
|
||||
);
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "occultation/occultation-Prefix.pch";
|
||||
INFOPLIST_FILE = "occultation/occultation-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"/Users/nop/Dropbox/iOS\\ Projects/occultation/occultation",
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "E22EF5C0-649C-4639-80A2-089905249BE0";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "E22EF5C0-649C-4639-80A2-089905249BE0";
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
F073DE2517E1D4780049D977 /* Build configuration list for PBXProject "occultation" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
F073DE5F17E1D4780049D977 /* Debug */,
|
||||
F073DE6017E1D4780049D977 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
F073DE6117E1D4780049D977 /* Build configuration list for PBXNativeTarget "occultation" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
F073DE6217E1D4780049D977 /* Debug */,
|
||||
F073DE6317E1D4780049D977 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = F073DE2217E1D4780049D977 /* Project object */;
|
||||
}
|
||||
7
occultation.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Executable file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:occultation.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
BIN
occultation.xcodeproj/project.xcworkspace/xcuserdata/nop.xcuserdatad/UserInterfaceState.xcuserstate
generated
Executable file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key>
|
||||
<true/>
|
||||
<key>SnapshotAutomaticallyBeforeSignificantChanges</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
occultation.xcodeproj/project.xcworkspace/xcuserdata/norbertschmidt.xcuserdatad/UserInterfaceState.xcuserstate
generated
Executable file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Bucket
|
||||
type = "1"
|
||||
version = "2.0">
|
||||
</Bucket>
|
||||
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0500"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "F073DE2917E1D4780049D977"
|
||||
BuildableName = "occultation.app"
|
||||
BlueprintName = "occultation"
|
||||
ReferencedContainer = "container:occultation.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "F073DE2917E1D4780049D977"
|
||||
BuildableName = "occultation.app"
|
||||
BlueprintName = "occultation"
|
||||
ReferencedContainer = "container:occultation.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "F073DE2917E1D4780049D977"
|
||||
BuildableName = "occultation.app"
|
||||
BlueprintName = "occultation"
|
||||
ReferencedContainer = "container:occultation.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "F073DE2917E1D4780049D977"
|
||||
BuildableName = "occultation.app"
|
||||
BlueprintName = "occultation"
|
||||
ReferencedContainer = "container:occultation.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>occultation.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>F073DE2917E1D4780049D977</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0500"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "F073DE2917E1D4780049D977"
|
||||
BuildableName = "occultation.app"
|
||||
BlueprintName = "occultation"
|
||||
ReferencedContainer = "container:occultation.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "F073DE2917E1D4780049D977"
|
||||
BuildableName = "occultation.app"
|
||||
BlueprintName = "occultation"
|
||||
ReferencedContainer = "container:occultation.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "F073DE2917E1D4780049D977"
|
||||
BuildableName = "occultation.app"
|
||||
BlueprintName = "occultation"
|
||||
ReferencedContainer = "container:occultation.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "F073DE2917E1D4780049D977"
|
||||
BuildableName = "occultation.app"
|
||||
BlueprintName = "occultation"
|
||||
ReferencedContainer = "container:occultation.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>occultation.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>F073DE2917E1D4780049D977</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
occultation/.DS_Store
vendored
Executable file
BIN
occultation/07-map-marker.png
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
occultation/07-map-marker@2x.png
Executable file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
occultation/111-user.png
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
occultation/111-user@2x.png
Executable file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
occultation/179-notepad.png
Executable file
|
After Width: | Height: | Size: 926 B |
BIN
occultation/179-notepad@2x.png
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
occultation/397-self-timer.png
Executable file
|
After Width: | Height: | Size: 994 B |
BIN
occultation/397-self-timer@2x.png
Executable file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
occultation/441-help-symbol1.png
Executable file
|
After Width: | Height: | Size: 891 B |
BIN
occultation/441-help-symbol1@2x.png
Executable file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
occultation/74-location.png
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
occultation/74-location@2x.png
Executable file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
occultation/78-stopwatch.png
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
occultation/78-stopwatch@2x.png
Executable file
|
After Width: | Height: | Size: 1.9 KiB |
17
occultation/AppDelegate.h
Executable file
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// AppDelegate.h
|
||||
// occultation
|
||||
//
|
||||
// Created by Norbert Schmidt on 12-09-13.
|
||||
// Copyright (c) 2013 Norbert Schmidt. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
|
||||
|
||||
@property (strong, nonatomic) UIWindow *window;
|
||||
|
||||
@property (strong, nonatomic) UITabBarController *tabBarController;
|
||||
|
||||
@end
|
||||
143
occultation/AppDelegate.m
Executable file
@@ -0,0 +1,143 @@
|
||||
//
|
||||
// AppDelegate.m
|
||||
// occultation
|
||||
//
|
||||
// Created by Norbert Schmidt on 12-09-13.
|
||||
// Copyright (c) 2013 Norbert Schmidt. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import <Parse/Parse.h>
|
||||
#import "MapViewController.h"
|
||||
#import "MyDataViewController.h"
|
||||
#import "FirstViewController.h"
|
||||
|
||||
#import "SecondViewController.h"
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
// start of your application:didFinishLaunchingWithOptions
|
||||
|
||||
|
||||
// The rest of your application:didFinishLaunchingWithOptions method
|
||||
// ...
|
||||
|
||||
[Parse setApplicationId:@"0cnw89JsPaLAYpv8eiBPVwL100QdIKEcFK6tkCSF"
|
||||
clientKey:@"AZGgWC4LfjdZhtFjHCYtCULah9klz2eXg8w7F0XW"];
|
||||
|
||||
[PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
|
||||
|
||||
|
||||
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
||||
// Override point for customization after application launch.
|
||||
UIViewController *viewController1, *viewController2, *viewController3, *viewController4;
|
||||
|
||||
viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil];
|
||||
viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil];
|
||||
viewController3 = [[MapViewController alloc] initWithNibName:@"MapViewController" bundle:nil];
|
||||
viewController4 = [[MyDataViewController alloc] initWithNibName:@"MyDataViewController" bundle:nil];
|
||||
|
||||
|
||||
|
||||
|
||||
self.tabBarController = [[UITabBarController alloc] init];
|
||||
self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3,viewController4];
|
||||
self.tabBarController.tabBar.tintColor=[UIColor blackColor];
|
||||
|
||||
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0f) {
|
||||
[[UITabBar appearance] setBarTintColor:[UIColor blackColor]];
|
||||
[[UITabBar appearance] setTintColor:[UIColor redColor]];
|
||||
}
|
||||
|
||||
[[UIApplication sharedApplication]
|
||||
setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO];
|
||||
|
||||
|
||||
self.window.rootViewController = self.tabBarController;
|
||||
[self.window makeKeyAndVisible];
|
||||
sleep(3);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NSString *strFirst = [[NSUserDefaults standardUserDefaults] objectForKey:@"user_name"];
|
||||
NSString *strSur = [[NSUserDefaults standardUserDefaults] objectForKey:@"user_surname"];
|
||||
NSString *strEmail = [[NSUserDefaults standardUserDefaults] objectForKey:@"user_email"];
|
||||
|
||||
if ( ([strFirst length] == 0 ) || ([strSur length]==0) || ([strEmail length]==0) ) {
|
||||
|
||||
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Contact details"
|
||||
message:@"Please enter your contact details"
|
||||
delegate:nil
|
||||
cancelButtonTitle:@"OK"
|
||||
otherButtonTitles:nil];
|
||||
[alert show];
|
||||
[self.tabBarController setSelectedIndex:1];
|
||||
|
||||
|
||||
}
|
||||
|
||||
return YES;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)applicationWillResignActive:(UIApplication *)application
|
||||
{
|
||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
||||
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application
|
||||
{
|
||||
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
|
||||
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application
|
||||
{
|
||||
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
|
||||
}
|
||||
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application
|
||||
{
|
||||
|
||||
// Check if username not is null, if yes
|
||||
|
||||
|
||||
|
||||
|
||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
||||
}
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application
|
||||
{
|
||||
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
|
||||
}
|
||||
|
||||
/*
|
||||
// Optional UITabBarControllerDelegate method.
|
||||
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
|
||||
{
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
// Optional UITabBarControllerDelegate method.
|
||||
- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed
|
||||
{
|
||||
}
|
||||
*/
|
||||
|
||||
@end
|
||||
BIN
occultation/Default-568h@2x.png
Executable file
|
After Width: | Height: | Size: 52 KiB |
BIN
occultation/Default.png
Executable file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
occultation/Default@2x.png
Executable file
|
After Width: | Height: | Size: 42 KiB |
59
occultation/FirstViewController.h
Executable file
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// FirstViewController.h
|
||||
// occultation
|
||||
//
|
||||
// Created by Norbert Schmidt on 12-09-13.
|
||||
// Copyright (c) 2013 Norbert Schmidt. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <CoreLocation/CoreLocation.h>
|
||||
|
||||
@interface FirstViewController : UIViewController <CLLocationManagerDelegate>
|
||||
{
|
||||
IBOutlet UITextField *txtEmail;
|
||||
IBOutlet UILabel *lblDissappeared;
|
||||
IBOutlet UILabel *lblAppeared;
|
||||
IBOutlet UILabel *lblDissappeared_utc;
|
||||
IBOutlet UILabel *lblAppeared_utc;
|
||||
|
||||
IBOutlet UILabel *lblLat;
|
||||
IBOutlet UILabel *lblLong;
|
||||
IBOutlet UILabel *lblStatus;
|
||||
IBOutlet UILabel *lblHeight;
|
||||
IBOutlet UILabel *lblGPSTime;
|
||||
IBOutlet UILabel *lblSysTime;
|
||||
|
||||
IBOutlet UITextView *lblButtonstatus;
|
||||
IBOutlet UIButton *btnMiss;
|
||||
|
||||
IBOutlet UIButton *btnSubmit;
|
||||
IBOutlet UIButton *btnAppearDisappear;
|
||||
int teller;
|
||||
CLLocationManager *locmanager;
|
||||
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) UITextField *txtEmail;
|
||||
@property (nonatomic, retain) UIButton *btnSubmit;
|
||||
@property (nonatomic, retain) UIButton *btnAppearDisappear;
|
||||
@property (nonatomic, retain) UIButton *btnMiss;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblDissappeared_utc;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblAppeared_utc;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblDissappeared;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblAppeared;
|
||||
@property (nonatomic, retain) IBOutlet UITextView *lblButtonstatus;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblGPSTime;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblSysTime;
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblLat;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblLong;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblStatus;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *lblHeight;
|
||||
|
||||
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *) oldLocation ;
|
||||
|
||||
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *) error;
|
||||
|
||||
|
||||
@end
|
||||
465
occultation/FirstViewController.m
Executable file
@@ -0,0 +1,465 @@
|
||||
//
|
||||
// FirstViewController.m
|
||||
// occultation
|
||||
//
|
||||
// Created by Norbert Schmidt on 12-09-13.
|
||||
// Copyright (c) 2013 Norbert Schmidt. All rights reserved.
|
||||
//
|
||||
|
||||
#import "FirstViewController.h"
|
||||
#import <Parse/Parse.h>
|
||||
|
||||
#import <AudioToolbox/AudioToolbox.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
@interface FirstViewController ()
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation FirstViewController
|
||||
|
||||
@synthesize txtEmail, btnAppearDisappear, btnSubmit, lblAppeared, lblDissappeared, lblLat, lblLong, lblStatus, lblHeight, lblButtonstatus, lblGPSTime, lblSysTime, btnMiss, lblAppeared_utc,lblDissappeared_utc;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
||||
{
|
||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
self.title = NSLocalizedString(@"Capture", @"Capture");
|
||||
self.tabBarItem.image = [UIImage imageNamed:@"78-stopwatch"];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) viewDidAppear:(BOOL)animated {
|
||||
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
|
||||
|
||||
}
|
||||
|
||||
-(void) viewDidDisappear:(BOOL)animated
|
||||
{
|
||||
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
|
||||
}
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
[lblButtonstatus setFont:[UIFont boldSystemFontOfSize:18]];
|
||||
|
||||
|
||||
lblButtonstatus.text=@"Always watch the star\nTap when star disappears\nTap when star reappears";
|
||||
|
||||
btnSubmit.enabled=FALSE; btnSubmit.alpha=0.3;
|
||||
|
||||
|
||||
|
||||
locmanager = [[CLLocationManager alloc] init];
|
||||
[locmanager setDelegate:self];
|
||||
[locmanager setDesiredAccuracy:kCLLocationAccuracyBest];
|
||||
[locmanager startUpdatingLocation];
|
||||
|
||||
|
||||
teller=0; lblButtonstatus.hidden=FALSE;
|
||||
|
||||
txtEmail.hidden=TRUE;
|
||||
// Do any additional setup after loading the view, typically from a nib.
|
||||
|
||||
|
||||
|
||||
[PFGeoPoint geoPointForCurrentLocationInBackground:^(PFGeoPoint *geoPoint, NSError *error) {
|
||||
|
||||
|
||||
double dblLat= geoPoint.latitude;
|
||||
double dblLong= geoPoint.longitude;
|
||||
|
||||
|
||||
lblLat.text=[NSString stringWithFormat:@"%.4f", dblLat];
|
||||
lblLong.text=[NSString stringWithFormat:@"%.4f", dblLong];
|
||||
|
||||
|
||||
}
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (IBAction)buttonClicked:(id)sender {
|
||||
|
||||
lblAppeared.hidden=FALSE;
|
||||
lblDissappeared.hidden=FALSE;
|
||||
btnMiss.hidden=TRUE;
|
||||
// store location and time
|
||||
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
|
||||
|
||||
NSString *strDatetime;
|
||||
NSDate *now = [NSDate date];
|
||||
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
||||
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
|
||||
strDatetime = [dateFormatter stringFromDate:now];
|
||||
|
||||
|
||||
|
||||
lblSysTime.text=strDatetime;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NSString *strDatetime_utc;
|
||||
NSDate *now_utc = [NSDate date];
|
||||
|
||||
NSDate *localDate = now_utc;
|
||||
NSTimeInterval timeZoneOffset = [[NSTimeZone systemTimeZone] secondsFromGMTForDate:localDate];
|
||||
NSDate *gmtDate = [localDate dateByAddingTimeInterval:-timeZoneOffset];
|
||||
|
||||
strDatetime_utc = [dateFormatter stringFromDate:gmtDate];
|
||||
NSLog(@"Date UTC %@", strDatetime_utc);
|
||||
|
||||
lblButtonstatus.text=@"";
|
||||
|
||||
//
|
||||
|
||||
if (teller==0) {
|
||||
|
||||
lblAppeared.text=@"";
|
||||
lblDissappeared.text=strDatetime;
|
||||
lblDissappeared_utc.text=strDatetime_utc;
|
||||
btnSubmit.enabled=FALSE;btnSubmit.alpha=0.3;
|
||||
sleep(0.3);
|
||||
|
||||
lblButtonstatus.text=@"Tap when star reappears" ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (teller==1) { lblAppeared.text=strDatetime;
|
||||
lblAppeared_utc.text=strDatetime_utc;
|
||||
btnSubmit.enabled=TRUE;
|
||||
btnMiss.hidden=TRUE;
|
||||
btnSubmit.alpha=1.0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
teller++;
|
||||
|
||||
if (teller>1)
|
||||
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
lblButtonstatus.text=@"Please click 'Report D&R button' below\n to report your D & R times";
|
||||
btnAppearDisappear.enabled=FALSE;
|
||||
txtEmail.hidden=FALSE;
|
||||
btnSubmit.enabled=TRUE;
|
||||
|
||||
teller=0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
|
||||
{
|
||||
lblHeight.text = [NSString stringWithFormat: @"%.2f m", newLocation.altitude];
|
||||
NSDate *now= newLocation.timestamp;
|
||||
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
||||
|
||||
|
||||
|
||||
|
||||
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
|
||||
[dateFormatter setTimeZone:gmt];
|
||||
|
||||
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
|
||||
NSString *strDatetime = [dateFormatter stringFromDate:now];
|
||||
|
||||
lblGPSTime.text=strDatetime;
|
||||
NSString *strDatetime2;
|
||||
NSDate *now2 = [NSDate date];
|
||||
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
|
||||
|
||||
[dateFormatter2 setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
|
||||
|
||||
[dateFormatter2 setTimeZone:gmt];
|
||||
|
||||
strDatetime2 = [dateFormatter2 stringFromDate:now2];
|
||||
|
||||
lblSysTime.text=strDatetime2;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
|
||||
{
|
||||
lblHeight.text = @"0.00 m";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-(IBAction) SubmitDataMiss {
|
||||
|
||||
|
||||
lblButtonstatus.text=@"Always watch the star\nTap when star disappears\nTap when star reappears";
|
||||
btnAppearDisappear.enabled=FALSE;
|
||||
lblButtonstatus.hidden=TRUE;
|
||||
txtEmail.hidden=FALSE;
|
||||
btnSubmit.hidden=FALSE;
|
||||
teller=0;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Parse setApplicationId:@"0cnw89JsPaLAYpv8eiBPVwL100QdIKEcFK6tkCSF"
|
||||
clientKey:@"AZGgWC4LfjdZhtFjHCYtCULah9klz2eXg8w7F0XW"];
|
||||
|
||||
|
||||
// Device
|
||||
size_t size;
|
||||
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
|
||||
char *machine = malloc(size);
|
||||
sysctlbyname("hw.machine", machine, &size, NULL, 0);
|
||||
NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
|
||||
free(machine);
|
||||
|
||||
// Date/time
|
||||
NSString *strDatetime;
|
||||
NSDate *now = [NSDate date];
|
||||
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
||||
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
|
||||
strDatetime = [dateFormatter stringFromDate:now];
|
||||
|
||||
// DeviceID
|
||||
|
||||
|
||||
|
||||
|
||||
NSString *deviceUDID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
|
||||
|
||||
|
||||
|
||||
|
||||
// Store data in a parse.com object.
|
||||
|
||||
[PFGeoPoint geoPointForCurrentLocationInBackground:^(PFGeoPoint *geoPoint, NSError *error) {
|
||||
|
||||
|
||||
|
||||
NSString *version =[[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleVersion"];
|
||||
|
||||
NSString *dissappeared =@"Miss";
|
||||
|
||||
NSString *appeared=@"Miss";
|
||||
NSString *height=[NSString stringWithFormat:@"%@",[lblHeight text]];
|
||||
|
||||
|
||||
NSString *user_name = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_name"];
|
||||
NSString *user_surname = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_surname"];
|
||||
|
||||
NSString *user_email = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_email"];
|
||||
|
||||
PFObject *SQMMeasurement = [PFObject objectWithClassName:@"occdata"];
|
||||
[SQMMeasurement setObject:deviceUDID forKey:@"device_id"];
|
||||
[SQMMeasurement setObject:strDatetime forKey:@"datetimesubmitted_utc"];
|
||||
[SQMMeasurement setObject:user_name forKey:@"user_name"];
|
||||
[SQMMeasurement setObject:user_surname forKey:@"user_surname"];
|
||||
[SQMMeasurement setObject:user_email forKey:@"user_email"];
|
||||
|
||||
[SQMMeasurement setObject:height forKey:@"height"];
|
||||
[SQMMeasurement setObject:geoPoint forKey:@"location"];
|
||||
[SQMMeasurement setObject:[NSNumber numberWithDouble: geoPoint.latitude ] forKey:@"lat"];
|
||||
[SQMMeasurement setObject:[NSNumber numberWithDouble: geoPoint.longitude ] forKey:@"lon"];
|
||||
|
||||
|
||||
[SQMMeasurement setObject:dissappeared forKey:@"disappeared_utc"];
|
||||
[SQMMeasurement setObject:appeared forKey:@"appeared_utc"];
|
||||
|
||||
[SQMMeasurement setObject:platform forKey:@"platform"];
|
||||
[SQMMeasurement setObject:version forKey:@"swversion"];
|
||||
[SQMMeasurement saveEventually];
|
||||
|
||||
SQMMeasurement=NULL;
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
|
||||
// here popup! [btnAppearDisappear setTitle:@"Miss reported" forState:UIControlStateNormal];
|
||||
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Occultation"
|
||||
message:@"A miss for your location has been reported."
|
||||
delegate:nil
|
||||
cancelButtonTitle:@"OK"
|
||||
otherButtonTitles:nil];
|
||||
[alert show];
|
||||
|
||||
teller=0;
|
||||
|
||||
btnSubmit.enabled=FALSE;
|
||||
btnSubmit.alpha=0.3;
|
||||
lblButtonstatus.hidden=FALSE;
|
||||
btnAppearDisappear.enabled=TRUE;
|
||||
[btnAppearDisappear setTitle:@"Tap when star disappears" forState:UIControlStateNormal];
|
||||
|
||||
lblStatus.text=@"Results submitted, thanks!";
|
||||
lblStatus.text=@"Tap when star disappears";
|
||||
|
||||
btnMiss.hidden=FALSE;
|
||||
|
||||
lblAppeared.hidden=TRUE;
|
||||
lblDissappeared.hidden=TRUE;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-(IBAction) SubmitData {
|
||||
|
||||
[Parse setApplicationId:@"0cnw89JsPaLAYpv8eiBPVwL100QdIKEcFK6tkCSF"
|
||||
clientKey:@"AZGgWC4LfjdZhtFjHCYtCULah9klz2eXg8w7F0XW"];
|
||||
|
||||
|
||||
// Device
|
||||
size_t size;
|
||||
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
|
||||
char *machine = malloc(size);
|
||||
sysctlbyname("hw.machine", machine, &size, NULL, 0);
|
||||
NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
|
||||
free(machine);
|
||||
|
||||
// Date/time
|
||||
NSString *strDatetime;
|
||||
NSDate *now = [NSDate date];
|
||||
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
||||
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
|
||||
strDatetime = [dateFormatter stringFromDate:now];
|
||||
|
||||
// DeviceID
|
||||
NSString *deviceUDID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Store data in a parse.com object.
|
||||
|
||||
[PFGeoPoint geoPointForCurrentLocationInBackground:^(PFGeoPoint *geoPoint, NSError *error) {
|
||||
|
||||
|
||||
|
||||
NSString *version =[[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleVersion"];
|
||||
|
||||
NSString *dissappeared =[NSString stringWithFormat:@"%@",[lblDissappeared text]];
|
||||
NSString *appeared=[NSString stringWithFormat:@"%@",[lblAppeared text]];
|
||||
NSString *dissappeared_utc =[NSString stringWithFormat:@"%@",[lblDissappeared_utc text]];
|
||||
NSString *appeared_utc=[NSString stringWithFormat:@"%@",[lblAppeared_utc text]];
|
||||
|
||||
NSString *height=[NSString stringWithFormat:@"%@",[lblHeight text]];
|
||||
|
||||
|
||||
NSLog(@"Eerste %@ Tweede %@", dissappeared, appeared);
|
||||
NSString *user_name = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_name"];
|
||||
NSString *user_surname = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_surname"];
|
||||
|
||||
NSString *user_email = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_email"];
|
||||
|
||||
PFObject *SQMMeasurement = [PFObject objectWithClassName:@"occdata"];
|
||||
[SQMMeasurement setObject:deviceUDID forKey:@"device_id"];
|
||||
[SQMMeasurement setObject:strDatetime forKey:@"datetimesubmitted"];
|
||||
[SQMMeasurement setObject:user_name forKey:@"user_name"];
|
||||
[SQMMeasurement setObject:user_surname forKey:@"user_surname"];
|
||||
[SQMMeasurement setObject:user_email forKey:@"user_email"];
|
||||
|
||||
[SQMMeasurement setObject:height forKey:@"height"];
|
||||
[SQMMeasurement setObject:geoPoint forKey:@"location"];
|
||||
[SQMMeasurement setObject:[NSNumber numberWithDouble: geoPoint.latitude ] forKey:@"lat"];
|
||||
[SQMMeasurement setObject:[NSNumber numberWithDouble: geoPoint.longitude ] forKey:@"lon"];
|
||||
|
||||
[SQMMeasurement setObject:dissappeared forKey:@"disappeared"];
|
||||
[SQMMeasurement setObject:appeared forKey:@"appeared"];
|
||||
|
||||
[SQMMeasurement setObject:dissappeared_utc forKey:@"disappeared_utc"];
|
||||
[SQMMeasurement setObject:appeared_utc forKey:@"appeared_utc"];
|
||||
|
||||
[SQMMeasurement setObject:platform forKey:@"platform"];
|
||||
[SQMMeasurement setObject:version forKey:@"swversion"];
|
||||
[SQMMeasurement saveEventually];
|
||||
|
||||
SQMMeasurement=NULL;
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Occultation"
|
||||
message:@"Your data was sent to our servers.\nThank you!"
|
||||
delegate:nil
|
||||
cancelButtonTitle:@"OK"
|
||||
otherButtonTitles:nil];
|
||||
[alert show];
|
||||
lblButtonstatus.text=@"";
|
||||
|
||||
// txtEmail.hidden=TRUE;
|
||||
btnSubmit.enabled=FALSE;
|
||||
btnSubmit.alpha=0.3;
|
||||
lblButtonstatus.hidden=FALSE;
|
||||
btnAppearDisappear.enabled=TRUE;
|
||||
|
||||
btnMiss.hidden=FALSE;
|
||||
lblButtonstatus.text=@"Always watch the star\nTap when star disappears\nTap when star reappears";
|
||||
|
||||
lblAppeared.hidden=TRUE;
|
||||
lblDissappeared.hidden=TRUE;
|
||||
|
||||
}
|
||||
-(IBAction)infobtn_click:(id)sender {
|
||||
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Occultation help"
|
||||
message:@"Occultation uses Location Services to determine where you were standing when you made your observation.\nIt is very important to know where each observer was located since that determines what part of the asteroid they are measuring.\nUse Occultation as follows: First be safe. Only observe from safe locations. While always keeping your eye on the target star (either by looking directly at it or, if it is dim, by viewing it in binoculars or a telescope), tap the large red button when you see the star disappear, and again when you see it reappear. The phone will shake to confirm that each of your taps was received, so you do not have to look away from the star. Once you have recorded the times of disappearance and reappearance, tap the Submit your D&R Times' button to send your times and current GPS location to IOTA’s servers.\nIf you do not see the star disappear within a minute or so on either side of the predicted time, then tap on the “Report a Miss” button. In this case your location along with the indication that the star did not disappear will be sent to IOTA’s servers.\n\nNote: Yes, we know the Sun is a star but remember: never look directly at the Sun, and especially never look at it through binoculars or a telescope! Occultation is designed for use at night only, not for Solar eclipses or any event having to do with the Sun!\nPlease provide your email address and name during installation in case IOTA’s analysts have questions about your observation. Since your data will be contributing to the science of asteroid measurement it may be necessary to contact you if there are questions about your observed times or location. No other use of your information will be made."
|
||||
delegate:nil
|
||||
cancelButtonTitle:@"OK"
|
||||
otherButtonTitles:nil];
|
||||
[alert show];
|
||||
}
|
||||
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
@end
|
||||
52
occultation/GradientButton.h
Executable file
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ButtonGradientView.h
|
||||
// Custom Alert View
|
||||
//
|
||||
// Created by jeff on 5/17/10.
|
||||
// Copyright 2010 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
#import <CoreGraphics/CoreGraphics.h>
|
||||
|
||||
@interface GradientButton : UIButton
|
||||
{
|
||||
// These two arrays define the gradient that will be used
|
||||
// when the button is in UIControlStateNormal
|
||||
NSArray *normalGradientColors; // Colors
|
||||
NSArray *normalGradientLocations; // Relative locations
|
||||
|
||||
// These two arrays define the gradient that will be used
|
||||
// when the button is in UIControlStateHighlighted
|
||||
NSArray *highlightGradientColors; // Colors
|
||||
NSArray *highlightGradientLocations; // Relative locations
|
||||
|
||||
// This defines the corner radius of the button
|
||||
CGFloat cornerRadius;
|
||||
|
||||
// This defines the size and color of the stroke
|
||||
CGFloat strokeWeight;
|
||||
UIColor *strokeColor;
|
||||
|
||||
@private
|
||||
CGGradientRef normalGradient;
|
||||
CGGradientRef highlightGradient;
|
||||
}
|
||||
@property (nonatomic, retain) NSArray *normalGradientColors;
|
||||
@property (nonatomic, retain) NSArray *normalGradientLocations;
|
||||
@property (nonatomic, retain) NSArray *highlightGradientColors;
|
||||
@property (nonatomic, retain) NSArray *highlightGradientLocations;
|
||||
@property (nonatomic) CGFloat cornerRadius;
|
||||
@property (nonatomic) CGFloat strokeWeight;
|
||||
@property (nonatomic, retain) UIColor *strokeColor;
|
||||
- (void)useAlertStyle;
|
||||
- (void)useRedDeleteStyle;
|
||||
- (void)useWhiteStyle;
|
||||
- (void)useBlackStyle;
|
||||
- (void)useWhiteActionSheetStyle;
|
||||
- (void)useBlackActionSheetStyle;
|
||||
- (void)useSimpleOrangeStyle;
|
||||
- (void)useGreenConfirmStyle;
|
||||
|
||||
@end
|
||||
584
occultation/GradientButton.m
Executable file
@@ -0,0 +1,584 @@
|
||||
//
|
||||
// ButtonGradientView.m
|
||||
// Custom Alert View
|
||||
//
|
||||
// Created by jeff on 5/17/10.
|
||||
// Copyright 2010 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import "GradientButton.h"
|
||||
|
||||
@interface GradientButton()
|
||||
@property (nonatomic, readonly) CGGradientRef normalGradient;
|
||||
@property (nonatomic, readonly) CGGradientRef highlightGradient;
|
||||
- (void)hesitateUpdate; // Used to catch and fix problem where quick taps don't get updated back to normal state
|
||||
@end
|
||||
#pragma mark -
|
||||
|
||||
@implementation GradientButton
|
||||
@synthesize normalGradientColors;
|
||||
@synthesize normalGradientLocations;
|
||||
@synthesize highlightGradientColors;
|
||||
@synthesize highlightGradientLocations;
|
||||
@synthesize cornerRadius;
|
||||
@synthesize strokeWeight, strokeColor;
|
||||
@synthesize normalGradient, highlightGradient;
|
||||
|
||||
#pragma mark -
|
||||
- (CGGradientRef)normalGradient
|
||||
{
|
||||
if (normalGradient == NULL)
|
||||
{
|
||||
int locCount = [normalGradientLocations count];
|
||||
CGFloat locations[locCount];
|
||||
for (int i = 0; i < [normalGradientLocations count]; i++)
|
||||
{
|
||||
NSNumber *location = [normalGradientLocations objectAtIndex:i];
|
||||
locations[i] = [location floatValue];
|
||||
}
|
||||
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
|
||||
|
||||
normalGradient = CGGradientCreateWithColors(space, (CFArrayRef)normalGradientColors, locations);
|
||||
CGColorSpaceRelease(space);
|
||||
}
|
||||
return normalGradient;
|
||||
}
|
||||
- (CGGradientRef)highlightGradient
|
||||
{
|
||||
|
||||
if (highlightGradient == NULL)
|
||||
{
|
||||
CGFloat locations[[highlightGradientLocations count]];
|
||||
for (int i = 0; i < [highlightGradientLocations count]; i++)
|
||||
{
|
||||
NSNumber *location = [highlightGradientLocations objectAtIndex:i];
|
||||
locations[i] = [location floatValue];
|
||||
}
|
||||
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
|
||||
|
||||
highlightGradient = CGGradientCreateWithColors(space, (CFArrayRef)highlightGradientColors, locations);
|
||||
CGColorSpaceRelease(space);
|
||||
}
|
||||
return highlightGradient;
|
||||
}
|
||||
#pragma mark -
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self)
|
||||
{
|
||||
[self setOpaque:NO];
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
#pragma mark -
|
||||
#pragma mark Appearances
|
||||
- (void)useAlertStyle
|
||||
{
|
||||
// Oddly enough, if I create the color array using arrayWithObjects:, it
|
||||
// doesn't work - the gradient comes back NULL
|
||||
NSMutableArray *colors = [NSMutableArray arrayWithCapacity:3];
|
||||
UIColor *color = [UIColor colorWithRed:0.283 green:0.32 blue:0.414 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.82 green:0.834 blue:0.87 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.186 green:0.223 blue:0.326 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
self.normalGradientColors = colors;
|
||||
self.normalGradientLocations = [NSArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.483f],
|
||||
nil];
|
||||
|
||||
NSMutableArray *colors2 = [NSMutableArray arrayWithCapacity:4];
|
||||
color = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.656 green:0.683 blue:0.713 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.137 green:0.155 blue:0.208 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.237 green:0.257 blue:0.305 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
self.highlightGradientColors = colors2;
|
||||
self.highlightGradientLocations = [NSArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.51f],
|
||||
[NSNumber numberWithFloat:0.654f],
|
||||
nil];
|
||||
self.cornerRadius = 7.0f;
|
||||
[self setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
|
||||
[self setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];
|
||||
|
||||
}
|
||||
- (void)useRedDeleteStyle
|
||||
{
|
||||
NSMutableArray *colors = [NSMutableArray arrayWithCapacity:5];
|
||||
UIColor *color = [UIColor colorWithRed:0.667 green:0.15 blue:0.152 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.841 green:0.566 blue:0.566 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.75 green:0.341 blue:0.345 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.592 green:0.0 blue:0.0 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.592 green:0.0 blue:0.0 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
self.normalGradientColors = colors;
|
||||
self.normalGradientLocations = [NSArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.582f],
|
||||
[NSNumber numberWithFloat:0.418f],
|
||||
[NSNumber numberWithFloat:0.346],
|
||||
nil];
|
||||
|
||||
NSMutableArray *colors2 = [NSMutableArray arrayWithCapacity:5];
|
||||
color = [UIColor colorWithRed:0.467 green:0.009 blue:0.005 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.754 green:0.562 blue:0.562 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.543 green:0.212 blue:0.212 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.5 green:0.153 blue:0.152 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.388 green:0.004 blue:0.0 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
|
||||
self.highlightGradientColors = colors;
|
||||
self.highlightGradientLocations = [NSArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.715f],
|
||||
[NSNumber numberWithFloat:0.513f],
|
||||
[NSNumber numberWithFloat:0.445f],
|
||||
nil];
|
||||
self.cornerRadius = 9.f;
|
||||
[self setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
|
||||
|
||||
}
|
||||
- (void)useWhiteStyle
|
||||
{
|
||||
NSMutableArray *colors = [NSMutableArray arrayWithCapacity:3];
|
||||
UIColor *color = [UIColor colorWithRed:0.864 green:0.864 blue:0.864 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.995 green:0.995 blue:0.995 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.956 green:0.956 blue:0.955 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
self.normalGradientColors = colors;
|
||||
self.normalGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.601f],
|
||||
nil];
|
||||
|
||||
NSMutableArray *colors2 = [NSMutableArray arrayWithCapacity:3];
|
||||
color = [UIColor colorWithRed:0.692 green:0.692 blue:0.691 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.995 green:0.995 blue:0.995 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.83 green:0.83 blue:0.83 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
self.highlightGradientColors = colors2;
|
||||
self.highlightGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.601f],
|
||||
nil];
|
||||
|
||||
self.cornerRadius = 9.f;
|
||||
[self setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
||||
[self setTitleColor:[UIColor darkGrayColor] forState:UIControlStateHighlighted];
|
||||
}
|
||||
- (void)useBlackStyle
|
||||
{
|
||||
NSMutableArray *colors = [NSMutableArray arrayWithCapacity:4];
|
||||
UIColor *color = [UIColor colorWithRed:0.154 green:0.154 blue:0.154 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.307 green:0.307 blue:0.307 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];;
|
||||
color = [UIColor colorWithRed:0.166 green:0.166 blue:0.166 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.118 green:0.118 blue:0.118 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
self.normalGradientColors = colors;
|
||||
self.normalGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.548f],
|
||||
[NSNumber numberWithFloat:0.462f],
|
||||
nil];
|
||||
self.cornerRadius = 9.0f;
|
||||
|
||||
NSMutableArray *colors2 = [NSMutableArray arrayWithCapacity:4];
|
||||
color = [UIColor colorWithRed:0.199 green:0.199 blue:0.199 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.04 green:0.04 blue:0.04 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.074 green:0.074 blue:0.074 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.112 green:0.112 blue:0.112 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
|
||||
self.highlightGradientColors = colors2;
|
||||
self.highlightGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.548f],
|
||||
[NSNumber numberWithFloat:0.462f],
|
||||
nil];
|
||||
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
}
|
||||
- (void)useWhiteActionSheetStyle
|
||||
{
|
||||
NSMutableArray *colors = [NSMutableArray arrayWithCapacity:3];
|
||||
UIColor *color = [UIColor colorWithRed:0.864 green:0.864 blue:0.864 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.995 green:0.995 blue:0.995 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.956 green:0.956 blue:0.955 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
self.normalGradientColors = colors;
|
||||
self.normalGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.601f],
|
||||
nil];
|
||||
|
||||
NSMutableArray *colors2 = [NSMutableArray arrayWithCapacity:7];
|
||||
color = [UIColor colorWithRed:0.033 green:0.251 blue:0.673 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.66 green:0.701 blue:0.88 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.222 green:0.308 blue:0.709 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.145 green:0.231 blue:0.683 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.0 green:0.124 blue:0.621 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.011 green:0.181 blue:0.647 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.311 green:0.383 blue:0.748 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
self.highlightGradientColors = colors2;
|
||||
self.highlightGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.957f],
|
||||
[NSNumber numberWithFloat:0.574f],
|
||||
[NSNumber numberWithFloat:0.541],
|
||||
[NSNumber numberWithFloat:0.185f],
|
||||
[NSNumber numberWithFloat:0.812f],
|
||||
nil];
|
||||
|
||||
self.cornerRadius = 9.f;
|
||||
[self setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
||||
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
|
||||
}
|
||||
- (void)useBlackActionSheetStyle
|
||||
{
|
||||
NSMutableArray *colors = [NSMutableArray arrayWithCapacity:4];
|
||||
UIColor *color = [UIColor colorWithRed:0.154 green:0.154 blue:0.154 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.307 green:0.307 blue:0.307 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];;
|
||||
color = [UIColor colorWithRed:0.166 green:0.166 blue:0.166 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.118 green:0.118 blue:0.118 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
self.normalGradientColors = colors;
|
||||
self.normalGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.548f],
|
||||
[NSNumber numberWithFloat:0.462f],
|
||||
nil];
|
||||
self.cornerRadius = 9.0f;
|
||||
|
||||
NSMutableArray *colors2 = [NSMutableArray arrayWithCapacity:7];
|
||||
color = [UIColor colorWithRed:0.033 green:0.251 blue:0.673 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.66 green:0.701 blue:0.88 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.222 green:0.308 blue:0.709 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.145 green:0.231 blue:0.683 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.0 green:0.124 blue:0.621 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.011 green:0.181 blue:0.647 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.311 green:0.383 blue:0.748 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
self.highlightGradientColors = colors2;
|
||||
self.highlightGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.957f],
|
||||
[NSNumber numberWithFloat:0.574f],
|
||||
[NSNumber numberWithFloat:0.541],
|
||||
[NSNumber numberWithFloat:0.185],
|
||||
[NSNumber numberWithFloat:0.812f],
|
||||
nil];
|
||||
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
|
||||
}
|
||||
- (void)useSimpleOrangeStyle
|
||||
{
|
||||
NSMutableArray *colors = [NSMutableArray arrayWithCapacity:2];
|
||||
UIColor *color = [UIColor colorWithRed:0.935 green:0.403 blue:0.02 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.97 green:0.582 blue:0.0 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
self.normalGradientColors = colors;
|
||||
self.normalGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
nil];
|
||||
|
||||
NSMutableArray *colors2 = [NSMutableArray arrayWithCapacity:3];
|
||||
color = [UIColor colorWithRed:0.914 green:0.309 blue:0.0 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.935 green:0.4 blue:0.0 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.946 green:0.441 blue:0.01 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
self.highlightGradientColors = colors2;
|
||||
self.highlightGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.498f],
|
||||
nil];
|
||||
|
||||
self.cornerRadius = 9.f;
|
||||
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
}
|
||||
- (void)useGreenConfirmStyle
|
||||
{
|
||||
NSMutableArray *colors = [NSMutableArray arrayWithCapacity:5];
|
||||
UIColor *color = [UIColor colorWithRed:0.15 green:0.667 blue:0.152 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.566 green:0.841 blue:0.566 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.341 green:0.75 blue:0.345 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.0 green:0.592 blue:0.0 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.0 green:0.592 blue:0.0 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
self.normalGradientColors = colors;
|
||||
self.normalGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.582f],
|
||||
[NSNumber numberWithFloat:0.418f],
|
||||
[NSNumber numberWithFloat:0.346],
|
||||
nil];
|
||||
|
||||
NSMutableArray *colors2 = [NSMutableArray arrayWithCapacity:5];
|
||||
color = [UIColor colorWithRed:0.009 green:0.467 blue:0.005 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.562 green:0.754 blue:0.562 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.212 green:0.543 blue:0.212 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.153 green:0.5 blue:0.152 alpha:1.0];
|
||||
[colors2 addObject:(id)[color CGColor]];
|
||||
color = [UIColor colorWithRed:0.004 green:0.388 blue:0.0 alpha:1.0];
|
||||
[colors addObject:(id)[color CGColor]];
|
||||
|
||||
self.highlightGradientColors = colors;
|
||||
self.highlightGradientLocations = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithFloat:0.0f],
|
||||
[NSNumber numberWithFloat:1.0f],
|
||||
[NSNumber numberWithFloat:0.715f],
|
||||
[NSNumber numberWithFloat:0.513f],
|
||||
[NSNumber numberWithFloat:0.445f],
|
||||
nil];
|
||||
self.cornerRadius = 9.f;
|
||||
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
|
||||
}
|
||||
#pragma mark -
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
self.backgroundColor = [UIColor clearColor];
|
||||
CGRect imageBounds = CGRectMake(0.0, 0.0, self.bounds.size.width - 0.5, self.bounds.size.height);
|
||||
|
||||
|
||||
CGGradientRef gradient;
|
||||
CGContextRef context = UIGraphicsGetCurrentContext();
|
||||
CGPoint point2;
|
||||
|
||||
CGFloat resolution = 0.5 * (self.bounds.size.width / imageBounds.size.width + self.bounds.size.height / imageBounds.size.height);
|
||||
|
||||
CGFloat stroke = strokeWeight * resolution;
|
||||
if (stroke < 1.0)
|
||||
stroke = ceil(stroke);
|
||||
else
|
||||
stroke = round(stroke);
|
||||
stroke /= resolution;
|
||||
CGFloat alignStroke = fmod(0.5 * stroke * resolution, 1.0);
|
||||
CGMutablePathRef path = CGPathCreateMutable();
|
||||
CGPoint point = CGPointMake((self.bounds.size.width - [self cornerRadius]), self.bounds.size.height - 0.5f);
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathMoveToPoint(path, NULL, point.x, point.y);
|
||||
point = CGPointMake(self.bounds.size.width - 0.5f, (self.bounds.size.height - [self cornerRadius]));
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPoint controlPoint1 = CGPointMake((self.bounds.size.width - ([self cornerRadius] / 2.f)), self.bounds.size.height - 0.5f);
|
||||
controlPoint1.x = (round(resolution * controlPoint1.x + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint1.y = (round(resolution * controlPoint1.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPoint controlPoint2 = CGPointMake(self.bounds.size.width - 0.5f, (self.bounds.size.height - ([self cornerRadius] / 2.f)));
|
||||
controlPoint2.x = (round(resolution * controlPoint2.x + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint2.y = (round(resolution * controlPoint2.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathAddCurveToPoint(path, NULL, controlPoint1.x, controlPoint1.y, controlPoint2.x, controlPoint2.y, point.x, point.y);
|
||||
point = CGPointMake(self.bounds.size.width - 0.5f, [self cornerRadius]);
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathAddLineToPoint(path, NULL, point.x, point.y);
|
||||
point = CGPointMake((self.bounds.size.width - [self cornerRadius]), 0.0);
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint1 = CGPointMake(self.bounds.size.width - 0.5f, ([self cornerRadius] / 2.f));
|
||||
controlPoint1.x = (round(resolution * controlPoint1.x + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint1.y = (round(resolution * controlPoint1.y + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint2 = CGPointMake((self.bounds.size.width - ([self cornerRadius] / 2.f)), 0.0);
|
||||
controlPoint2.x = (round(resolution * controlPoint2.x + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint2.y = (round(resolution * controlPoint2.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathAddCurveToPoint(path, NULL, controlPoint1.x, controlPoint1.y, controlPoint2.x, controlPoint2.y, point.x, point.y);
|
||||
point = CGPointMake([self cornerRadius], 0.0);
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathAddLineToPoint(path, NULL, point.x, point.y);
|
||||
point = CGPointMake(0.0, [self cornerRadius]);
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint1 = CGPointMake(([self cornerRadius] / 2.f), 0.0);
|
||||
controlPoint1.x = (round(resolution * controlPoint1.x + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint1.y = (round(resolution * controlPoint1.y + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint2 = CGPointMake(0.0, ([self cornerRadius] / 2.f));
|
||||
controlPoint2.x = (round(resolution * controlPoint2.x + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint2.y = (round(resolution * controlPoint2.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathAddCurveToPoint(path, NULL, controlPoint1.x, controlPoint1.y, controlPoint2.x, controlPoint2.y, point.x, point.y);
|
||||
point = CGPointMake(0.0, (self.bounds.size.height - [self cornerRadius]));
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathAddLineToPoint(path, NULL, point.x, point.y);
|
||||
point = CGPointMake([self cornerRadius], self.bounds.size.height - 0.5f);
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint1 = CGPointMake(0.0, (self.bounds.size.height - ([self cornerRadius] / 2.f)));
|
||||
controlPoint1.x = (round(resolution * controlPoint1.x + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint1.y = (round(resolution * controlPoint1.y + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint2 = CGPointMake(([self cornerRadius] / 2.f), self.bounds.size.height - 0.5f);
|
||||
controlPoint2.x = (round(resolution * controlPoint2.x + alignStroke) - alignStroke) / resolution;
|
||||
controlPoint2.y = (round(resolution * controlPoint2.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathAddCurveToPoint(path, NULL, controlPoint1.x, controlPoint1.y, controlPoint2.x, controlPoint2.y, point.x, point.y);
|
||||
point = CGPointMake((self.bounds.size.width - [self cornerRadius]), self.bounds.size.height - 0.5f);
|
||||
point.x = (round(resolution * point.x + alignStroke) - alignStroke) / resolution;
|
||||
point.y = (round(resolution * point.y + alignStroke) - alignStroke) / resolution;
|
||||
CGPathAddLineToPoint(path, NULL, point.x, point.y);
|
||||
CGPathCloseSubpath(path);
|
||||
if (self.state == UIControlStateHighlighted)
|
||||
gradient = self.highlightGradient;
|
||||
else
|
||||
gradient = self.normalGradient;
|
||||
|
||||
CGContextAddPath(context, path);
|
||||
CGContextSaveGState(context);
|
||||
CGContextEOClip(context);
|
||||
point = CGPointMake((self.bounds.size.width / 2.0), self.bounds.size.height - 0.5f);
|
||||
point2 = CGPointMake((self.bounds.size.width / 2.0), 0.0);
|
||||
CGContextDrawLinearGradient(context, gradient, point, point2, (kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation));
|
||||
CGContextRestoreGState(context);
|
||||
[strokeColor setStroke];
|
||||
CGContextSetLineWidth(context, stroke);
|
||||
CGContextSetLineCap(context, kCGLineCapSquare);
|
||||
CGContextAddPath(context, path);
|
||||
CGContextStrokePath(context);
|
||||
CGPathRelease(path);
|
||||
|
||||
}
|
||||
#pragma mark -
|
||||
#pragma mark Touch Handling
|
||||
- (void)hesitateUpdate
|
||||
{
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
[super touchesBegan:touches withEvent:event];
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
[super touchesCancelled:touches withEvent:event];
|
||||
[self setNeedsDisplay];
|
||||
[self performSelector:@selector(hesitateUpdate) withObject:nil afterDelay:0.1];
|
||||
}
|
||||
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
[super touchesMoved:touches withEvent:event];
|
||||
[self setNeedsDisplay];
|
||||
|
||||
}
|
||||
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
[super touchesEnded:touches withEvent:event];
|
||||
[self setNeedsDisplay];
|
||||
[self performSelector:@selector(hesitateUpdate) withObject:nil afterDelay:0.1];
|
||||
}
|
||||
#pragma mark -
|
||||
#pragma mark NSCoding
|
||||
- (void)encodeWithCoder:(NSCoder *)encoder
|
||||
{
|
||||
[super encodeWithCoder:encoder];
|
||||
[encoder encodeObject:[self normalGradientColors] forKey:@"normalGradientColors"];
|
||||
[encoder encodeObject:[self normalGradientLocations] forKey:@"normalGradientLocations"];
|
||||
[encoder encodeObject:[self highlightGradientColors] forKey:@"highlightGradientColors"];
|
||||
[encoder encodeObject:[self highlightGradientLocations] forKey:@"highlightGradientLocations"];
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)decoder
|
||||
{
|
||||
if (self = [super initWithCoder:decoder])
|
||||
{
|
||||
[self setNormalGradientColors:[decoder decodeObjectForKey:@"normalGradientColors"]];
|
||||
[self setNormalGradientLocations:[decoder decodeObjectForKey:@"normalGradientLocations"]];
|
||||
[self setHighlightGradientColors:[decoder decodeObjectForKey:@"highlightGradientColors"]];
|
||||
[self setHighlightGradientLocations:[decoder decodeObjectForKey:@"highlightGradientLocations"]];
|
||||
self.strokeColor = [UIColor colorWithRed:0.076 green:0.103 blue:0.195 alpha:1.0];
|
||||
self.strokeWeight = 1.0;
|
||||
|
||||
if (self.normalGradientColors == nil)
|
||||
[self useWhiteStyle];
|
||||
|
||||
[self setOpaque:NO];
|
||||
self.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.0];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
#pragma mark -
|
||||
- (void)dealloc
|
||||
{
|
||||
[normalGradientColors release];
|
||||
[normalGradientLocations release];
|
||||
[highlightGradientColors release];
|
||||
[highlightGradientLocations release];
|
||||
[strokeColor release];
|
||||
|
||||
if (normalGradient != NULL)
|
||||
CGGradientRelease(normalGradient);
|
||||
if (highlightGradient != NULL)
|
||||
CGGradientRelease(highlightGradient);
|
||||
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
BIN
occultation/Icon-72.png
Executable file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
occultation/Icon-72@2x.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
BIN
occultation/Icon-Small-50.png
Executable file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
occultation/Icon-Small-50@2x.png
Executable file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
occultation/Icon-Small.png
Executable file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
occultation/Icon-Small@2x.png
Executable file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
occultation/Icon.png
Executable file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
occultation/Icon@2x.png
Executable file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
occultation/Images.xcassets/.DS_Store
vendored
Executable file
44
occultation/Images.xcassets/AppIcon.appiconset/Contents.json
Executable file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-Small.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-Small@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "ios7_spotlight_icon@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "57x57",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "57x57",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "ios7_app_icon_iphone@2x.png",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
BIN
occultation/Images.xcassets/AppIcon.appiconset/Icon-Small.png
Executable file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
occultation/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png
Executable file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
occultation/Images.xcassets/AppIcon.appiconset/Icon.png
Executable file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
occultation/Images.xcassets/AppIcon.appiconset/Icon@2x.png
Executable file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
occultation/Images.xcassets/AppIcon.appiconset/ios7_app_icon_iphone@2x.png
Executable file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
occultation/Images.xcassets/AppIcon.appiconset/ios7_spotlight_icon@2x.png
Executable file
|
After Width: | Height: | Size: 5.8 KiB |
47
occultation/Images.xcassets/LaunchImage.launchimage/Contents.json
Executable file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"orientation" : "portrait",
|
||||
"idiom" : "iphone",
|
||||
"extent" : "full-screen",
|
||||
"minimum-system-version" : "7.0",
|
||||
"filename" : "Default-8h@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"extent" : "full-screen",
|
||||
"idiom" : "iphone",
|
||||
"subtype" : "retina4",
|
||||
"filename" : "Default-568h@2x.png",
|
||||
"minimum-system-version" : "7.0",
|
||||
"orientation" : "portrait",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"orientation" : "portrait",
|
||||
"idiom" : "iphone",
|
||||
"extent" : "full-screen",
|
||||
"filename" : "Default.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"orientation" : "portrait",
|
||||
"idiom" : "iphone",
|
||||
"extent" : "full-screen",
|
||||
"filename" : "Default@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"orientation" : "portrait",
|
||||
"idiom" : "iphone",
|
||||
"extent" : "full-screen",
|
||||
"filename" : "Default-568h@2x copy-1.png",
|
||||
"subtype" : "retina4",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
BIN
occultation/Images.xcassets/LaunchImage.launchimage/Default-568h@2x copy-1.png
Executable file
|
After Width: | Height: | Size: 52 KiB |
BIN
occultation/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png
Executable file
|
After Width: | Height: | Size: 52 KiB |
BIN
occultation/Images.xcassets/LaunchImage.launchimage/Default-8h@2x.png
Executable file
|
After Width: | Height: | Size: 67 KiB |
BIN
occultation/Images.xcassets/LaunchImage.launchimage/Default.png
Executable file
|
After Width: | Height: | Size: 19 KiB |
BIN
occultation/Images.xcassets/LaunchImage.launchimage/Default@2x.png
Executable file
|
After Width: | Height: | Size: 62 KiB |
31
occultation/MapViewController.h
Executable file
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// MapViewController.h
|
||||
// Dark Sky Meter
|
||||
//
|
||||
// Created by Norbert Schmidt on 19-02-13.
|
||||
// Copyright (c) 2013 Norbert Schmidt. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <MapKit/MapKit.h>
|
||||
|
||||
@interface MapViewController : UIViewController <MKMapViewDelegate>
|
||||
{
|
||||
|
||||
|
||||
IBOutlet MKMapView *ObserverMapView;
|
||||
MKPlacemark *mPlacemark;
|
||||
IBOutlet UIButton *btnReset;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@property (retain, nonatomic) IBOutlet MKMapView *ObserverMapView;
|
||||
@property (retain, nonatomic) IBOutlet UIButton *btnReset;
|
||||
|
||||
|
||||
|
||||
- (void) initMap;
|
||||
- (IBAction)doReset:(id)sender;
|
||||
@end
|
||||