init(expressionType : NSExpression.ExpressionType)
init(format: String, argumentArray : [Any])
init(format: String, arguments: CVaListPointer)
init(format: String, CVarArg...)
init?(coder: NSCoder)
Availability 有効性
Technology
class NSExpression : NSObject
Comparison operations in an NSPredicate
derive from two expressions as instances of the NSExpression
class. You create expressions for constant values, key paths, and so on.
NSPredicate
における比較演算は、2つの式からNSExpression
クラスのインスタンスとして引き出します。あなたは、式を定数値、キーパス、などに対して作成します。
Generally, anywhere in the NSExpression
class hierarchy where there’s a composite API and subtypes that may only reasonably respond to a subset of that API, invoking a method that doesn’t make sense for that subtype throws an exception.
一般的に、NSExpression
クラス階層のどこででも、合成APIおよびそのAPIのサブセットに合理的に応答するだけであろう下位型が存在するところで、その下位型に理解できないメソッドを発動することは、例外をスローします。
NSExpression
allows you to create predicates containing expressions that evaluate to collections that contain further expressions. The collection may be an NSArray
, NSSet
, or NSDictionary
object.
Core Data doesn’t support aggregate expressions. Core Dataは、集計式をサポートしません。
The NSExpression
creates a subexpression that returns a subset of a collection of objects. This allows you to create sophisticated queries across relationships, such as a search for multiple correlated values on the destination object of a relationship.
これは、あなたに洗練されたクエリをリレーションシップを越えて作成させます、例えばあるリレーションシップの行き先オブジェクト上での複数の相互に関連した値に対する検索など。
The set expressions (NSExpression
, NSExpression
, and NSExpression
) combine results in a manner similar to the NSSet
methods.
Both sides of these expressions must evaluate to a collection; the left side must evaluate to an NSSet
object, and the right side can be any other collection type.
それら式の両側は、コレクションに評価されなければなりません;左側はNSSet
オブジェクトに評価されなければなりません、右側は何らかの他のコレクション型であることができます。
Core Data doesn’t support set expressions. Core Dataは、集合式をサポートしません。
In macOS 10.4, NSExpression
only supports a predefined set of functions: sum
, count
, min
, max
, and average
. You access these predefined functions in the predicate syntax using custom keywords (for example, MAX(1, 5, 10)
).
macOS 10.4では、NSExpression
はあらかじめ定義された関数の集合だけをサポートします:sum
, count
, min
, max
, そしてaverage
。あなたは、それらあらかじめ定義された関数に、述部構文において、あつらえのキーワードを使ってアクセスします(例えば、MAX(1, 5, 10)
)。
In macOS 10.5 and later, function expressions also support arbitrary method invocations. To implement this extended functionality, use the syntax FUNCTION(receiver, selector
as in the following example:
macOS 10.5以降では、関数式はまた随意のメソッド発動をサポートします。この拡張された機能性を実装するために、構文FUNCTION(receiver, selector
を使ってください、以下の例でのように:
All methods must take one or more id
arguments and return an id
value, although you can use the CAST
expression to convert datatypes with lossy string representations (for example, CAST(####, "NSDate")
). macOS 10.5 extends the CAST
expression to provide support for casting to classes for use in creating receivers for function expressions.
すべてのメソッドは、1つまたはそれ以上のid
をとり、あるid
値を返さなければなりません、とはいえあなたはCAST
式を使ってデータ型を非可逆文字列表現に変換できます(例えば、CAST(####, "NSDate")
)。macOS 10.5は、CAST
式を拡張して、クラスにキャストするためのサポートを、関数式に対するレシーバの作成において使うために提供します。
Although Core Data supports evaluation of the predefined functions, it doesn’t support the evaluation of custom predicate functions in the persistent stores (during a fetch). Core Dataがあらかじめ定義された関数の評価をサポートするにもかかわらず、それはあつらえの述部関数の評価を永続的な格納において(フェッチの間の)サポートしません。
init(expressionType : NSExpression.ExpressionType)
init(format: String, argumentArray : [Any])
init(format: String, arguments: CVaListPointer)
init(format: String, CVarArg...)
init?(coder: NSCoder)
init(forConstantValue : Any?)
class func expressionForEvaluatedObject () -> NSExpression
init(forKeyPath : String)
init(forVariable : String)
init<Root, Value>(forKeyPath : KeyPath<Root, Value>)
class func expressionForAnyKey () -> NSExpression
init(forAggregate : [NSExpression])
init(forUnionSet : NSExpression, with: NSExpression)
init(forIntersectSet : NSExpression, with: NSExpression)
init(forMinusSet : NSExpression, with: NSExpression)
init(forSubquery : NSExpression, usingIteratorVariable : String, predicate: NSPredicate)
init(forConditional : NSPredicate, trueExpression : NSExpression, falseExpression : NSExpression)
init(block: (Any?, [NSExpression], NSMutableDictionary?) -> Any, arguments: [NSExpression]?)
init(forFunction : String, arguments: [Any])
init(forFunction : NSExpression, selectorName : String, arguments: [Any]?)
var arguments: [NSExpression]?
var collection: Any
var constantValue : Any?
var expressionType : NSExpression.ExpressionType
enum NSExpression.ExpressionType
var function: String
var keyPath : String
var operand: NSExpression
var predicate: NSPredicate
var left: NSExpression
var right: NSExpression
var variable: String
func expressionValue (with: Any?, context: NSMutableDictionary?) -> Any?
func allowEvaluation ()
var `false`: NSExpression
var `true`: NSExpression
var expressionBlock : (Any?, [NSExpression], NSMutableDictionary?) -> Any
class NSPredicate
class NSComparisonPredicate
class NSCompoundPredicate