FROM : Ken Thomases
DATE : Sun Jun 15 23:13:19 2008
On Jun 15, 2008, at 3:57 PM, Dmitry Markman wrote:
> Hi, all
>
> I have a problem with the NSMutableAttributedString's
> setBaseWritingDirection method
>
> here is a code
>
> NSMutableAttributedString *attrString = [[[NSAttributedString
> alloc] initWithString:textString attributes:stringAttributes]
> autorelease];
The above creates an immutable NSAttributedString. The pointer to
that is stored in a variable of type NSMutableAttributedString*, but
that doesn't make it so. Replace the use of "NSAttributedString" in
the above with "NSMutableAttributedString" to do the proper thing.
>
> NSRange attrStringRange = NSMakeRange(0,[[attrString string]
> length]);
> @try {
> [attrString
> setBaseWritingDirection:NSWritingDirectionNatural
> range:attrStringRange];
> } @catch (NSException *exception) {
> NSLog(@"main: Caught %@: %@", [exception name],
> [exception reason]);
> }
> I'm getting exception
> 2008-06-15 16:39:06.465 Gateways[14812:10b] *** -
> [NSConcreteAttributedString setBaseWritingDirection:range:]:
> unrecognized selector sent to instance 0x10248ab0
>
> NSLog output is
>
> 2008-06-15 16:41:48.676 Gateways[14812:10b] main: Caught
> NSInvalidArgumentException: *** -[NSConcreteAttributedString
> setBaseWritingDirection:range:]: unrecognized selector sent to
> instance 0x10248ab0
This exception sort of gives you the hint, if you know what to look
for. The object is of the concrete class NSConcreateAttributedString,
which doesn't indicate that it's mutable, so you can guess that it
isn't.
Cheers,
Ken
DATE : Sun Jun 15 23:13:19 2008
On Jun 15, 2008, at 3:57 PM, Dmitry Markman wrote:
> Hi, all
>
> I have a problem with the NSMutableAttributedString's
> setBaseWritingDirection method
>
> here is a code
>
> NSMutableAttributedString *attrString = [[[NSAttributedString
> alloc] initWithString:textString attributes:stringAttributes]
> autorelease];
The above creates an immutable NSAttributedString. The pointer to
that is stored in a variable of type NSMutableAttributedString*, but
that doesn't make it so. Replace the use of "NSAttributedString" in
the above with "NSMutableAttributedString" to do the proper thing.
>
> NSRange attrStringRange = NSMakeRange(0,[[attrString string]
> length]);
> @try {
> [attrString
> setBaseWritingDirection:NSWritingDirectionNatural
> range:attrStringRange];
> } @catch (NSException *exception) {
> NSLog(@"main: Caught %@: %@", [exception name],
> [exception reason]);
> }
> I'm getting exception
> 2008-06-15 16:39:06.465 Gateways[14812:10b] *** -
> [NSConcreteAttributedString setBaseWritingDirection:range:]:
> unrecognized selector sent to instance 0x10248ab0
>
> NSLog output is
>
> 2008-06-15 16:41:48.676 Gateways[14812:10b] main: Caught
> NSInvalidArgumentException: *** -[NSConcreteAttributedString
> setBaseWritingDirection:range:]: unrecognized selector sent to
> instance 0x10248ab0
This exception sort of gives you the hint, if you know what to look
for. The object is of the concrete class NSConcreateAttributedString,
which doesn't indicate that it's mutable, so you can guess that it
isn't.
Cheers,
Ken
| Related mails | Author | Date |
|---|---|---|
| Dmitry Markman | Jun 15, 22:57 | |
| Ken Thomases | Jun 15, 23:13 | |
| Dmitry Markman | Jun 16, 00:01 |






Cocoa mail archive

